v2fly/geoip
Fork: 88 Star: 544 (更新于 2024-05-03 03:18:06)
license: CC-BY-SA-4.0
Language: Go .
GeoIP for V2Ray. Generate and release GeoIP files such as geoip.dat and geoip-only-cn-private.dat for V2Ray automatically every Thursday.
最后发布版本: 202405020039 ( 2024-05-02 08:39:49)
GeoIP for V2Ray
This project automatically weekly releases GeoIP files for routing purpose in Project V. It also provides a command line interface(CLI) for users to customize their own GeoIP files.
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.
Download links
- geoip.dat:https://github.com/v2fly/geoip/releases/latest/download/geoip.dat
- geoip.dat.sha256sum:https://github.com/v2fly/geoip/releases/latest/download/geoip.dat.sha256sum
- geoip-only-cn-private.dat:https://github.com/v2fly/geoip/releases/latest/download/geoip-only-cn-private.dat
- geoip-only-cn-private.dat.sha256sum:https://github.com/v2fly/geoip/releases/latest/download/geoip-only-cn-private.dat.sha256sum
- cn.dat:https://github.com/v2fly/geoip/releases/latest/download/cn.dat
- cn.dat.sha256sum:https://github.com/v2fly/geoip/releases/latest/download/cn.dat.sha256sum
- private.dat:https://github.com/v2fly/geoip/releases/latest/download/private.dat
- private.dat.sha256sum:https://github.com/v2fly/geoip/releases/latest/download/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"
]
}
]
}
Generate GeoIP files manually
- Install
golang
andgit
- 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.json
by referencing the example configuration options in fileconfig-example.json
- Generate files:
go run ./
Notices
- If input format
maxmindGeoLite2CountryCSV
is specified in config file, you must first downloadGeoLite2-Country-CSV.zip
from MaxMind, then unzip it togeolite2
directory. -
go run ./
will useconfig.json
in current directory as the default config file, or usego run ./ -c /path/to/your/own/config/file.json
to specify your own config file. - The generated files are located at
output
directory by default. - Run
go run ./ -h
for more usage information. - See
config-example.json
for more configuration options.
CLI showcase
You can run go install -v github.com/v2fly/geoip@latest
to install the CLI directly.
$ ./geoip -h
Usage of ./geoip:
-c string
Path to the config file (default "config.json")
-l List all available input and output formats
$ ./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
$ ./geoip -l
All available input formats:
- v2rayGeoIPDat (Convert V2Ray GeoIP dat to other formats)
- maxmindMMDB (Convert MaxMind mmdb database to other formats)
- maxmindGeoLite2CountryCSV (Convert MaxMind GeoLite2 country CSV data to other formats)
- text (Convert plaintext IP and CIDR to other formats)
- private (Convert LAN and private network CIDR to other formats)
- cutter (Remove data from previous steps)
- test (Convert specific CIDR to other formats (for test only))
All available output formats:
- v2rayGeoIPDat (Convert data to V2Ray GeoIP dat format)
- text (Convert data to plaintext CIDR format)
Notice
This product includes GeoLite2 data created by MaxMind, available from MaxMind.
License
最近版本更新:(数据更新于 2024-05-03 03:17:50)
2024-05-02 08:39:49 202405020039
2024-04-25 08:42:34 202404250042
2024-04-18 08:39:16 202404180039
2024-04-11 08:40:07 202404110039
2024-04-04 08:40:25 202404040040
2024-03-28 08:39:05 202403280038
2024-03-21 08:40:06 202403210039
2024-03-14 08:38:11 202403140037
2024-03-13 22:32:35 202403131432
2024-03-07 08:31:32 202403070031
主题(topics):
geoip, v2fly, v2ray
v2fly/geoip同语言 Go最近更新仓库
2024-05-18 06:38:00 dolthub/dolt
2024-05-18 04:35:49 containerd/containerd
2024-05-18 02:28:56 aws/aws-sdk-go
2024-05-18 00:27:14 aurora-develop/aurora
2024-05-17 16:35:04 bnb-chain/bsc
2024-05-17 05:36:40 rook/rook