Home

Awesome

geo

πŸ—ΊAn easy way to manage all your Geo resources.

Support GeoIP/GeoSite code lookup and converting among all popular GeoIP/GeoSite databases.

Install

Requirements:

go install -v github.com/metacubex/geo/cmd/geo@master

Usage

Type geo help for more details.

Look up codes from existing Geo databases

The default directory to find Geo databases is ~/.geo. You can specify it through -D argument.

IP

geo look 223.5.5.5
geo look 2001:250::

Site

geo look example.com
geo look --no-resolve example.com

Supported databases for look command:

Convert

IP

geo convert ip -i <input_type> -o <output_type> -f [output_filename] input_filename
geo convert ip -i v2ray -o meta ./geoip.dat

Available types:

Supported conversion pairs: (Column=From, Row=To)

MaxMindV2Ray-geoipsing-geoipMeta-geoip
MaxMind-
V2Ray-
sing-geoipβœ…βœ…-βœ…
Meta-geoipβœ…-

Conversion to MaxMind is not available for legal reasons.
Conversion to V2Ray is on the TODO list.

Site

geo convert site -i <input_type> -o <output_type> -f [output_filename] -c [country code] input_filename
geo convert site -i v2ray -o sing ./geosite.dat

Only v2ray -> sing conversion is supported for GeoSite.

Unpack

site

geo unpack site ./geosite.dat -d output -c cn

Frequently Asked Questions (FAQ)

Why conversion MaxMind/sing-geoip -> Meta-geoip is not available?

Meta-geoip is designed to support IP with multiple results, which will help users who use GeoIP functionality as IPList or IPSet.

For sources such as MaxMind and sing-geoip, which only have a single possible result, according to the principle of Occam's razor, there is no need to convert to Meta-geoip database.
In the other hand, when there is only a single result, the data structure of Meta-geoip and sing-geoip is completely consistent, and even compatible with the parsing logic.

Clash.Meta supports all of these databases, so everything is well. :-)