Geoip
GeoIP for V2Ray. Generate and release GeoIP files such as geoip.dat and geoip-only-cn-private.dat for V2Ray automatically monthly.
Install / Use
/learn @v2fly/GeoipREADME
GeoIP for V2Ray
This project releases GeoIP files monthly for routing purpose in Project V. It also provides a command line interface(CLI) tool for users to customize their own GeoIP files.
Download links
For all GeoIP files released by this project, see the release branch. Below are download URLs for some GeoIP files:
- geoip.dat:
- geoip.dat.sha256sum:
- geoip-only-cn-private.dat:
- geoip-only-cn-private.dat.sha256sum:
- cn.dat:
- cn.dat.sha256sum:
- private.dat:
- private.dat.sha256sum:
GeoIP usage example in V2Ray
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "Direct",
"ip": [
"223.5.5.5/32",
"119.29.29.29/32",
"180.76.76.76/32",
"114.114.114.114/32",
"geoip:cn",
"geoip:private",
"ext:cn.dat:cn",
"ext:private.dat:private",
"ext:geoip-only-cn-private.dat:cn",
"ext:geoip-only-cn-private.dat:private"
]
},
{
"type": "field",
"outboundTag": "Proxy-1",
"ip": [
"1.1.1.1/32",
"1.0.0.1/32",
"8.8.8.8/32",
"8.8.4.4/32"
]
},
{
"type": "field",
"outboundTag": "Proxy-2",
"ip": [
"geoip:us",
"geoip:ca"
]
},
{
"type": "field",
"outboundTag": "Proxy-3",
"ip": [
"geoip:hk",
"geoip:mo",
"geoip:tw",
"geoip:jp",
"geoip:sg"
]
}
]
}
Customize GeoIP files
Concept explanation
These two concepts are notable: input and output. The input is the data source and its input format, whereas the output is the destination of the converted data and its output format. What the CLI does is to aggregate all input format data, then convert them to output format and write them to GeoIP files by using the options in the config file.
Supported formats
Supported input formats:
- cutter: Remove data from previous steps
- maxmindGeoLite2CountryCSV: Convert MaxMind GeoLite2 country CSV data to other formats
- maxmindMMDB: Convert MaxMind country mmdb database to other formats
- dbipCountryMMDB: Convert DB-IP lite country mmdb database to other formats
- private: Convert LAN and private network CIDR to other formats
- text: Convert plaintext IP and CIDR to other formats
- v2rayGeoIPDat: Convert V2Ray GeoIP dat to other formats
Supported output formats:
- text: Convert data to plaintext CIDR format
- v2rayGeoIPDat: Convert data to V2Ray GeoIP dat format
Steps
- Install
golangandgit - Clone project code:
git clone https://github.com/v2fly/geoip.git - Navigate to project root directory:
cd geoip - Install project dependencies:
go mod download - Edit config file
config.jsonby referencing the configuration options in configuration.md - Generate files:
go run ./
Notices
go run ./will useconfig.jsonin current directory as the default config file, or usego run ./ -c /path/to/your/own/config/file.jsonto specify your own config file.- The generated files are located at
outputdirectory by default. - Run
go run ./ -hfor more usage information. - See configuration.md for all configuration options.
CLI showcase
You can run go install -v github.com/v2fly/geoip@latest to install the CLI tool directly.
Show help information
$ ./geoip -h
Usage of ./geoip:
-c string
Path to the config file (default "config.json")
-l List all available input and output formats
Generate GeoIP files
$ ./geoip -c config.json
2021/09/02 00:26:12 ✅ [v2rayGeoIPDat] geoip.dat --> output/dat
2021/09/02 00:26:12 ✅ [v2rayGeoIPDat] geoip-only-cn-private.dat --> output/dat
2021/09/02 00:26:12 ✅ [v2rayGeoIPDat] cn.dat --> output/dat
2021/09/02 00:26:12 ✅ [v2rayGeoIPDat] private.dat --> output/dat
2021/09/02 00:26:12 ✅ [v2rayGeoIPDat] test.dat --> output/dat
2021/09/02 00:26:12 ✅ [text] cn.txt --> output/text
List all supported formats
$ ./geoip -l
All available input formats:
- cutter (Remove data from previous steps)
- dbipCountryMMDB (Convert DB-IP lite country mmdb database to other formats)
- maxmindGeoLite2CountryCSV (Convert MaxMind GeoLite2 country CSV data to other formats)
- maxmindMMDB (Convert MaxMind GeoLite2 country mmdb database to other formats)
- private (Convert LAN and private network CIDR to other formats)
- test (Convert specific CIDR to other formats (for test only))
- text (Convert plaintext IP and CIDR to other formats)
- v2rayGeoIPDat (Convert V2Ray GeoIP dat to other formats)
All available output formats:
- text (Convert data to plaintext CIDR format)
- v2rayGeoIPDat (Convert data to V2Ray GeoIP dat format)
License
This project is licensed under CC-BY-SA-4.0 license.
The free IP Geolocation data by DB-IP is licensed under CC-BY-4.0 license.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
