gitextract_eppf0yhb/ ├── .gitattributes ├── .gitignore ├── LICENSE.md ├── README.md ├── README_zh.md ├── binding/ │ ├── c/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── main.c │ │ ├── test_util.c │ │ ├── xdb_api.h │ │ ├── xdb_searcher.c │ │ └── xdb_util.c │ ├── cpp/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── src/ │ │ │ ├── base.cc │ │ │ ├── base.h │ │ │ ├── bench.cc │ │ │ ├── bench.h │ │ │ ├── edit.cc │ │ │ ├── edit.h │ │ │ ├── header.cc │ │ │ ├── header.h │ │ │ ├── ip.cc │ │ │ ├── ip.h │ │ │ ├── make.cc │ │ │ ├── make.h │ │ │ ├── search.cc │ │ │ └── search.h │ │ └── test/ │ │ ├── bench.cc │ │ ├── edit_v4.cc │ │ ├── edit_v6.cc │ │ ├── header.cc │ │ ├── make.cc │ │ └── search.cc │ ├── csharp/ │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── IP2Region.Net/ │ │ │ ├── Abstractions/ │ │ │ │ └── ISearcher.cs │ │ │ ├── Extensions/ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ ├── IP2Region.Net.csproj │ │ │ ├── Internal/ │ │ │ │ ├── CacheStrategyFactory.cs │ │ │ │ ├── ContentCacheStrategy.cs │ │ │ │ ├── FileCacheStrategy.cs │ │ │ │ ├── ICacheStrategy.cs │ │ │ │ └── VectorIndexCacheStrategy.cs │ │ │ └── XDB/ │ │ │ ├── CachePolicy.cs │ │ │ ├── Searcher.cs │ │ │ ├── Util.cs │ │ │ └── XdbVersion.cs │ │ ├── IP2Region.Net.BenchMark/ │ │ │ ├── Benmarks.cs │ │ │ ├── IP2Region.Net.BenchMark.csproj │ │ │ └── Program.cs │ │ ├── IP2Region.Net.Test/ │ │ │ ├── IP2Region.Net.Test.csproj │ │ │ ├── SearcherTest.cs │ │ │ ├── UtilTest.cs │ │ │ └── XdbTest.cs │ │ ├── IP2Region.Net.slnx │ │ └── README.md │ ├── erlang/ │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── benchmarks/ │ │ │ └── xdb-benchmark.sh │ │ ├── include/ │ │ │ └── ip2region.hrl │ │ ├── priv/ │ │ │ └── dummy │ │ ├── rebar.config │ │ ├── src/ │ │ │ ├── ip2region.app.src │ │ │ ├── ip2region_app.erl │ │ │ ├── ip2region_sup.erl │ │ │ ├── ip2region_util.erl │ │ │ ├── ip2region_worker.erl │ │ │ ├── xdb.erl │ │ │ └── xdb_benchmark.erl │ │ └── test/ │ │ └── xdb_test.erl │ ├── golang/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── service/ │ │ │ ├── config.go │ │ │ ├── config_test.go │ │ │ ├── ip2region.go │ │ │ ├── ip2region_test.go │ │ │ ├── searcher_pool.go │ │ │ └── searcher_pool_test.go │ │ └── xdb/ │ │ ├── header.go │ │ ├── searcher.go │ │ ├── util.go │ │ ├── util_test.go │ │ └── version.go │ ├── java/ │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── lionsoul/ │ │ │ └── ip2region/ │ │ │ ├── SearcherTest.java │ │ │ ├── service/ │ │ │ │ ├── Config.java │ │ │ │ ├── ConfigBuilder.java │ │ │ │ ├── InvalidConfigException.java │ │ │ │ ├── Ip2Region.java │ │ │ │ └── SearcherPool.java │ │ │ └── xdb/ │ │ │ ├── Header.java │ │ │ ├── IPv4.java │ │ │ ├── IPv6.java │ │ │ ├── InetAddressException.java │ │ │ ├── LittleEndian.java │ │ │ ├── Log.java │ │ │ ├── LongByteArray.java │ │ │ ├── Searcher.java │ │ │ ├── Util.java │ │ │ ├── Version.java │ │ │ └── XdbException.java │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── lionsoul/ │ │ └── ip2region/ │ │ ├── service/ │ │ │ ├── ConfigTest.java │ │ │ ├── Ip2RegionTest.java │ │ │ └── SearcherPoolTest.java │ │ └── xdb/ │ │ ├── BufferTest.java │ │ ├── IPv4Test.java │ │ ├── LittleEndianTest.java │ │ ├── UtilTest.java │ │ └── VersionTest.java │ ├── javascript/ │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── searcher.js │ │ ├── tests/ │ │ │ ├── bench.app.js │ │ │ ├── search.app.js │ │ │ ├── searcher.test.js │ │ │ └── util.test.js │ │ ├── tsconfig.json │ │ └── util.js │ ├── lua/ │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── bench_test.lua │ │ ├── search_test.lua │ │ ├── util_test.lua │ │ └── xdb_searcher.lua │ ├── lua_c/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── bench_test.lua │ │ ├── search_test.lua │ │ ├── util_test.lua │ │ └── xdb_searcher.c │ ├── nginx/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── config │ │ ├── src/ │ │ │ ├── ngx_http_ip2region_module.c │ │ │ └── ngx_http_ip2region_module.h │ │ └── t/ │ │ └── http_ip2region.t │ ├── nodejs/ │ │ └── README.md │ ├── php/ │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── batch_test.php │ │ ├── bench_test.php │ │ ├── search_test.php │ │ └── xdb/ │ │ ├── Searcher.class.php │ │ └── util_test.php │ ├── python/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── bench_test.py │ │ ├── ip2region/ │ │ │ ├── __init__.py │ │ │ ├── searcher.py │ │ │ └── util.py │ │ ├── search_test.py │ │ ├── setup.py │ │ └── util_test.py │ ├── rust/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── example/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── cmd.rs │ │ │ └── main.rs │ │ └── ip2region/ │ │ ├── Cargo.toml │ │ ├── benches/ │ │ │ └── search.rs │ │ └── src/ │ │ ├── error.rs │ │ ├── ip_value.rs │ │ ├── lib.rs │ │ └── searcher.rs │ └── typescript/ │ └── README.md ├── data/ │ ├── ip2region_v4.xdb │ ├── ip2region_v6.xdb │ ├── ipv4_source.txt │ ├── ipv6_source.txt │ └── sample/ │ ├── github-issue-196.fix │ ├── github-issue-200.fix │ ├── github-issue-243.fix │ ├── github-issue-287.bug │ ├── ip.test.txt │ ├── segments.tests │ └── segments.tests.mixed └── maker/ ├── c/ │ └── ReadMe.md ├── cpp/ │ └── README.md ├── csharp/ │ ├── .gitignore │ ├── IP2RegionMaker/ │ │ ├── IP2RegionMaker.csproj │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── PublishProfiles/ │ │ │ └── FolderProfile.pubxml │ │ └── XDB/ │ │ ├── IndexPolicy.cs │ │ ├── Maker.cs │ │ ├── Segment.cs │ │ └── Util.cs │ ├── IP2RegionMaker.Test/ │ │ ├── IP2RegionMaker.Test.csproj │ │ ├── Usings.cs │ │ └── UtilTest.cs │ ├── README.md │ └── README_zh.md ├── golang/ │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── README_zh.md │ ├── cmd/ │ │ ├── bench.go │ │ ├── edit.go │ │ ├── generate.go │ │ ├── process.go │ │ ├── search.go │ │ └── util.go │ ├── go.mod │ ├── go.sum │ ├── main.go │ ├── make.bat │ └── xdb/ │ ├── editor.go │ ├── index.go │ ├── maker.go │ ├── processor.go │ ├── searcher.go │ ├── segment.go │ ├── util.go │ ├── util_test.go │ └── version.go ├── java/ │ ├── README.md │ ├── README_zh.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── org/ │ │ └── lionsoul/ │ │ └── ip2region/ │ │ ├── MakerApp.java │ │ └── xdb/ │ │ ├── IPv4.java │ │ ├── IPv6.java │ │ ├── IndexPolicy.java │ │ ├── InvalidInetAddressException.java │ │ ├── LittleEndian.java │ │ ├── Log.java │ │ ├── Maker.java │ │ ├── Segment.java │ │ ├── Util.java │ │ └── Version.java │ └── test/ │ └── java/ │ └── org/ │ └── lionsoul/ │ └── ip2region/ │ └── xdb/ │ ├── IndexPolicyTest.java │ ├── LittleEndianTest.java │ ├── MakerTest.java │ ├── SegmentTest.java │ ├── UtilTest.java │ └── VersionTest.java ├── python/ │ ├── README.md │ ├── README_zh.md │ ├── main.py │ └── xdb/ │ ├── __init__.py │ ├── index.py │ ├── maker.py │ ├── segment.py │ └── util.py └── rust/ ├── README.md ├── README_zh.md └── maker/ ├── Cargo.toml └── src/ ├── command.rs ├── error.rs ├── header.rs ├── lib.rs ├── main.rs ├── maker.rs └── segment.rs