Este projeto gera automaticamente arquivos GeoIP em vários formatos todas as quintas-feiras e também fornece ferramentas de interface de linha de comando (CLI) para os usuários personalizarem arquivos GeoIP, incluindo, mas não limitado a, arquivo de formato V2Ray dat
geoip.dat
, arquivo de formato MaxMind mmdb
Country.mmdb
, arquivo de formato sing -box SRS
, arquivo de formato mihomo MRS
, conjunto de regras Clash e conjunto de regras Surge.
Este projeto lança vários formatos de arquivos GeoIP automaticamente todas as quintas-feiras e fornece uma ferramenta de interface de linha de comando (CLI) para os usuários personalizarem seus próprios arquivos GeoIP, incluindo, mas não limitado a, arquivo de formato V2Ray dat
geoip.dat
, arquivo de formato MaxMind mmdb
Country.mmdb
, arquivos de formato SRS
sing-box, arquivos de formato mihomo MRS
, arquivos de conjunto de regras Clash e arquivos de conjunto de regras Surge.
Por padrão, este projeto usa dados CSV do MaxMind GeoLite2 Country para gerar arquivos GeoIP para cada país e região. Para todas as categorias geoip de país e região disponíveis (como geoip:cn
, duas letras em inglês representam o país e a região), consulte: https://www.iban.com/country-codes.
Além disso, este projeto modificou e adicionou novos dados GeoIP oficiais da MaxMind:
Os dados de endereço IPv4 da China continental combinam IPIP.net e @gaoyifan/china-operator-ip
Os dados de endereço IPv6 da China continental combinam MaxMind GeoLite2 e @gaoyifan/china-operator-ip
Novas categorias (convenientes para usuários com necessidades especiais):
geoip:cloudflare
( GEOIP,CLOUDFLARE
)
geoip:cloudfront
( GEOIP,CLOUDFRONT
)
geoip:facebook
( GEOIP,FACEBOOK
)
geoip:fastly
( GEOIP,FASTLY
)
geoip:google
( GEOIP,GOOGLE
)
geoip:netflix
( GEOIP,NETFLIX
)
geoip:telegram
( GEOIP,TELEGRAM
)
geoip:twitter
( GEOIP,TWITTER
)
geoip:tor
( GEOIP,TOR
)
Para todos os arquivos GeoIP lançados por este projeto, verifique o branch de lançamento. A seguir estão os endereços de download para alguns formatos de arquivos GeoIP:
Se você não conseguir acessar o nome de domínio
raw.githubusercontent.com
, poderá usar o segundo endereçocdn.jsdelivr.net
. Se o nome de domíniocdn.jsdelivr.net
não estiver acessível, você poderá substituí-lo porfastly.jsdelivr.net
.*.sha256sum é o arquivo de verificação.
Aplicável a V2Ray, Xray-core, mihomo, histeria, Trojan-Go.
Este arquivo de formato dat não pode ser usado com Nginx.
geoip.dat :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat
geoip.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat.sha256sum
geoip-only-cn-private.dat (versão lite do GeoIP, contém apenas geoip:cn
e geoip:private
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-only-cn-private.dat
geoip-only-cn-private.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-only-cn-private.dat.sha256sum
geoip-asn.dat (versão lite do GeoIP, inclui apenas as novas categorias acima):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-asn.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-asn.dat
geoip-asn.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-asn.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-asn.dat.sha256sum
cn.dat (versão lite do GeoIP, contém apenas geoip:cn
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/cn.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/cn.dat
cn.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/cn.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/cn.dat.sha256sum
private.dat (versão lite do GeoIP, contém apenas geoip:private
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/private.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/private.dat
privado.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/private.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/private.dat.sha256sum
Para arquivos no formato dat em todos os países/regiões/novas categorias , verifique o diretório dat no branch release
deste projeto.
Você precisa primeiro baixar o arquivo no formato .dat
e colocá-lo no diretório do programa.
"roteamento": { "regras": [ { "type": "campo", "outboundTag": "Direto", "ip": ["geoip:cn","geoip:private","ext:cn.dat:cn","ext:private.dat :privado","ext:geoip-only-cn-private.dat:cn","ext:geoip-only-cn-private.dat:private" ] }, { "type": "field", "outboundTag": "Proxy", "ip": ["geoip:us","geoip:jp","geoip:facebook","geoip:telegram","ext:geoip -asn.dat:facebook","ext:geoip-asn.dat:telegram"] } ] }
modo geodata: truegeox-url: geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat"
Você precisa primeiro baixar o arquivo no formato .dat
e colocá-lo no diretório do programa Hysteria.
direct(geoip:cn) proxy(geoip:telegram) proxy(geoip:us)
Você precisa primeiro baixar o arquivo no formato .dat
e colocá-lo no diretório do programa Trojan-Go.
"router": { "enabled": true, "bypass": ["geoip:cn"], "proxy": ["geoip:telegram", "geoip:us"], "block": ["geoip:jp "], "default_policy": "proxy", "geoip": "./geoip.dat"}
Arquivo mmdb do tipo país/região da versão oficial da MaxMind:
Adequado para Clash, mihomo, Shadowrocket, Quantumult X, Surge, Leaf.
Aplicável ao Nginx, precisa ser usado com o módulo ngx_http_geoip2_module.
GeoLite2-Country.mmdb :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-Country.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-Country.mmdb
GeoLite2-Country.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-Country.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-Country.mmdb.sha256sum
Versão oficial do MaxMind arquivo ASN tipo mmdb:
Adequado para mihomo, Shadowrocket, Surge.
GeoLite2-ASN.mmdb :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-ASN.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb
GeoLite2-ASN.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-ASN.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb.sha256sum
Arquivo mmdb do tipo país/região gerado por este projeto:
Adequado para Clash, mihomo, Shadowrocket, Quantumult X, Surge, Leaf.
Aplicável ao Nginx, precisa ser usado com o módulo ngx_http_geoip2_module.
A categoria país/região mantém todos os campos em
Continent
eCountry
. A nova categoria e a categoria geoip:private mantêm apenasiso_code
(código de país/região representado por duas letras em inglês) emCountry
. Para os campos completos do arquivo no formato MMDB oficial do país da Maxmind, consulte o código.
Country-without-asn.mmdb (a versão tradicional do GeoIP inclui apenas categorias de país/região e não inclui as novas categorias mencionadas acima. Recomenda-se usá-lo primeiro):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-without-asn.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-without-asn.mmdb
País sem asn.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-without-asn.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-without-asn.mmdb.sha256sum
Country.mmdb (versão aprimorada do GeoIP, incluindo categorias de país/região, bem como as novas categorias mencionadas acima. No entanto, devido às limitações do formato MaxMind mmdb, os dados de endereço IP de algumas categorias de país/região não são tão precisos quanto o acima mencionado Country-without-asn.mmdb ):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb
País.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb.sha256sum
Country-only-cn-private.mmdb (versão lite do GeoIP, contém apenas GEOIP,CN
e GEOIP,PRIVATE
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-only-cn-private.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-only-cn-private.mmdb
Somente país-cn-private.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-only-cn-private.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-only-cn-private.mmdb.sha256sum
Country-asn.mmdb (versão lite do GeoIP, inclui apenas as novas categorias acima):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-asn.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-asn.mmdb
País-asn.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-asn.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-asn.mmdb.sha256sum
Você precisa primeiro baixar o arquivo no formato .mmdb
, nomeá-lo Country.mmdb
e colocá-lo no diretório do programa Clash.
regras: - GEOIP, PRIVADO, política, sem resolução - GEOIP,FACEBOOK,política - GEOIP, CN, política, sem resolução
modo geodata: truegeox-url: mmdb: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb" asn: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb"
O endereço de download precisa ser preenchido nas configurações do Shadowrocket.
[Rule]
GEOIP,PRIVATE,DIRECT
GEOIP,FACEBOOK,PROXY
GEOIP,CN,DIRECT
O endereço de download precisa ser preenchido nas configurações do Quantumult X.
[filter_local]
GEOIP,PRIVATE,DIRECT
GEOIP,FACEBOOK,PROXY
GEOIP,CN,DIRECT
O endereço de download precisa ser preenchido nas configurações do Surge.
[Rule]
GEOIP,PRIVATE,policy,no-resolve
GEOIP,FACEBOOK,policy
GEOIP,CN,policy,no-resolve
Adequado para caixa de canto.
Por favor, verifique o diretório srs no branch release
deste projeto.
"rota": { "regras": [ { "rule_set": "geoip-cn", "outbound": "direct"}, { "rule_set": "geoip-us", "outbound": "bloquear"} ], "conjunto de regras": [ { "tag": "geoip-cn", "type": "remote", "format": "binary", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/ srs/cn.srs"}, { "tag": "geoip-us", "type": "remote", "format": "binary", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/ srs/us.srs"} ] }
Adequado para mihomo.
Por favor, verifique o diretório mrs no branch release
deste projeto.
provedores de regras: cn-cidr: tipo: httpbehavior: ipcidrformat: mrsurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/mrs/cn.mrs" caminho: ./mrs/geoip/cn .mrsintervalo: 86400 google-cidr: tipo: httpbehavior: ipcidrformat: mrsurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/mrs/google.mrs" caminho: ./mrs/geoip/google.mrsinterval: 86400rules : - CONJUNTO DE REGRAS,cn-cidr,DIRETO - RULE-SET,google-cidr,PROXY,sem resolução
Aplicável ao Clash Premium, mihomo.
Por favor, verifique o diretório crash no branch release
deste projeto.
provedores de regras: cn-cidr: tipo: httpbehavior: ipcidrformat: yamlurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/clash/ipcidr/cn.txt" caminho: ./ruleset/ipcidr /cn.yamlinterval: 86400 telegram-cidr: tipo: httpbehavior: ipcidrformat: yamlurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/clash/ipcidr/telegram.txt" caminho: ./ruleset/ipcidr/telegram.yamlinterval :86400regras: - CONJUNTO DE REGRAS, cn-cidr, DIRETO - RULE-SET, telegrama-cidr, PROXY, sem resolução
Adequado para surto.
Por favor, verifique o diretório surge no branch release
deste projeto.
[Rule]
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/us.txt,REJECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/cn.txt,DIRECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/telegram.txt,PROXY,no-resolve
Por favor, verifique o diretório de texto no branch release
deste projeto.
allow
e deny
arquivos Por favor, verifique o diretório nginx no branch release
deste projeto.
Os arquivos GeoIP podem ser personalizados das seguintes maneiras:
Geração online : após bifurcar este warehouse, modifique os arquivos de configuração config.json
e GitHub Workflow .github/workflows/build.yml
em seu próprio warehouse
Geração local :
Instale Golang e Git
Extraia o código do projeto: git clone https://github.com/Loyalsoldier/geoip.git
Digite o diretório raiz do projeto: cd geoip
Modifique o arquivo de configuração config.json
Execute o código: go run ./ convert -c ./config.json
Instruções especiais:
Geração on-line : Fork Após este projeto, se você precisar usar o arquivo de dados oficial do MaxMind GeoLite2, será necessário adicionar um arquivo chamado MAXMIND_GEOLITE2_LICENSE à página da guia [Ações] em [Segredos e variáveis] na barra lateral esquerda de [Configurações] página do segredo do seu warehouse, caso contrário, o GitHub Actions não será executado. O valor deste segredo é a CHAVE DE LICENÇA da conta MaxMind. Ele precisa ser gerado em [ Gerenciar Chaves de Licença ] na barra lateral esquerda da página de gerenciamento de conta pessoal após registrar uma conta MaxMind .
Geração local : Se você precisar usar o arquivo de dados GeoLite2 oficial da MaxMind, será necessário baixá-lo antecipadamente da MaxMind ou baixá-lo da ramificação de lançamento deste projeto (o nome do arquivo é prefixado com GeoLite2
) e descompactá-lo em um diretório denominado geolite2
.
Este projeto possui dois conceitos: input
e output
. input
refere-se à fonte de dados e seu formato de entrada, e output
refere-se ao destino dos dados e seu formato de saída. A função da CLI é agregar todas as fontes de dados fornecidas pelo usuário lendo as opções no arquivo de configuração, remover duplicatas, convertê-las para o formato de destino e enviá-las para um arquivo.
Esses dois conceitos são notáveis: input
e output
A input
é a fonte de dados e seu formato de entrada, enquanto a output
é o destino dos dados convertidos e seu formato de saída. O que a CLI faz é agregar todos os dados do formato de entrada e, em seguida, converter. para o formato de saída e gravá-los em arquivos GeoIP usando as opções no arquivo de configuração.
Para opções de configuração suportadas por cada formato, veja o arquivo configuration.md
deste projeto.
Formatos input
suportados:
text : IP e CIDR de texto simples (por exemplo: 1.1.1.1
ou 1.0.0.0/24
)
stdin : Obtenha IP e CIDR de texto simples da entrada padrão (por exemplo: 1.1.1.1
ou 1.0.0.0/24
)
private : LAN e CIDR de rede privada (por exemplo: 192.168.0.0/16
e 127.0.0.0/8
)
cortador : usado para cortar os dados na etapa anterior
json : formato de dados JSON
v2rayGeoIPDat : formato de dados V2Ray GeoIP dat ( geoip.dat
)
maxmindMMDB : formato de dados mmdb do país MaxMind GeoLite2 ( GeoLite2-Country.mmdb
)
maxmindGeoLite2ASNCSV : formato de dados MaxMind GeoLite2 ASN CSV ( GeoLite2-ASN-CSV.zip
)
maxmindGeoLite2CountryCSV : formato de dados CSV do país MaxMind GeoLite2 ( GeoLite2-Country-CSV.zip
)
dbipCountryMMDB : formato de dados mmdb do país DB-IP ( dbip-country-lite.mmdb
)
ipinfoCountryMMDB : formato de dados mmdb do país IPInfo ( country.mmdb
)
mihomoMRS : formato de dados mihomo MRS ( geoip-cn.mrs
)
singboxSRS : formato de dados SRS de caixa única ( geoip-cn.srs
)
ClashRuleSetClassical : Clash RuleSet do tipo clássico
ClashRuleSet : Clash RuleSet do tipo ipcidr
surgeRuleSet : SurgeRuleSet
Formatos output
suportados:
text : CIDR de texto simples (por exemplo: 1.0.0.0/24
)
stdout : saída CIDR de texto simples para saída padrão (por exemplo: 1.0.0.0/24
)
pesquisa : Encontre o IP ou CIDR especificado na lista especificada
v2rayGeoIPDat : formato de dados V2Ray GeoIP dat ( geoip.dat
)
maxmindMMDB : formato de dados mmdb do país MaxMind GeoLite2 ( GeoLite2-Country.mmdb
)
dbipCountryMMDB : formato de dados mmdb do país DB-IP ( dbip-country-lite.mmdb
)
ipinfoCountryMMDB : formato de dados mmdb do país IPInfo ( country.mmdb
)
mihomoMRS : formato de dados mihomo MRS ( geoip-cn.mrs
)
singboxSRS : formato de dados SRS de caixa única ( geoip-cn.srs
)
ClashRuleSetClassical : Clash RuleSet do tipo clássico
ClashRuleSet : Clash RuleSet do tipo ipcidr
surgeRuleSet : SurgeRuleSet
Devido às limitações do formato de arquivo mmdb do MaxMind, DB-IP e IPInfo, quando os dados IP ou CIDR de listas diferentes têm interseções ou duplicatas, os dados IP ou CIDR da lista gravada posteriormente substituirão os gravados anteriormente. Lista de dados. Por exemplo, IP 1.1.1.1
pertence à lista AU
e à lista Cloudflare
. Se Cloudflare
gravar após AU
, então IP 1.1.1.1
pertence à lista Cloudflare
.
Para garantir que certas listas especificadas e listas modificadas incluam todos os dados IP ou CIDR pertencentes a elas, a opção overwriteList
pode ser adicionada à configuração do formato de saída correspondente output
. As listas especificadas nesta opção serão escritas uma. por um no final. O último item tem a prioridade mais alta. Se a opção wantedList
estiver definida, não há necessidade de definir overwriteList
. A lista especificada em wantedList
será escrita uma por uma no final, sendo que o último item da lista terá a prioridade mais alta.
A ferramenta CLI pode ser instalada diretamente por meio de go install -v github.com/Loyalsoldier/geoip@latest
.
As funções fornecidas pela CLI são as seguintes:
Listar formatos input
e output
suportados ( list
)
Conversão de formato de dados GeoIP ( convert
)
Encontre a categoria de IP ou CIDR ( lookup
)
Desduplicação e fusão de IP e CIDR ( merge
)
$ ./geoip geoip é uma ferramenta conveniente para mesclar, converter e pesquisar IP e CIDR de vários formatos de dados geoip. Uso: geoip [comando] Comandos disponíveis: convert Converta dados geoip de um formato para outro usando o arquivo de configuração ajuda Ajuda sobre qualquer comando list Lista todos os formatos de entrada e saída disponíveis lookup Pesquisa IP ou CIDR especificado em listas especificadas mesclar Mesclar IP e CIDR de texto simples da entrada padrão e imprimir na saída padrão Bandeiras: -h, --help ajuda para geoip Use "geoip [command] --help" para obter mais informações sobre um comando.
input
e output
suportados ( list
)lista $ ./geoip Todos os formatos de entrada disponíveis: - ClashRuleSet (converta o tipo ipcidr do Clash RuleSet para outros formatos) - ClashRuleSetClassical (Converta o tipo clássico de Clash RuleSet para outros formatos (apenas processando linhas IP e CIDR)) - cortador (remover dados das etapas anteriores) - dbipCountryMMDB (Converta o banco de dados mmdb do país DB-IP para outros formatos) - ipinfoCountryMMDB (Converta o banco de dados mmdb do país IPInfo para outros formatos) - json (converter dados JSON para outros formatos) - maxmindGeoLite2ASNCSV (Converta dados MaxMind GeoLite2 ASN CSV para outros formatos) - maxmindGeoLite2CountryCSV (Converter dados CSV do país MaxMind GeoLite2 para outros formatos) - maxmindMMDB (Converta o banco de dados MaxMind mmdb para outros formatos) - mihomoMRS (converta dados mihomo MRS para outros formatos) - privado (converta LAN e CIDR de rede privada para outros formatos) - singboxSRS (converta dados SRS de caixa única para outros formatos) - stdin (aceita IP e CIDR de texto simples da entrada padrão, separados por nova linha) - surgeRuleSet (Converter Surge RuleSet para outros formatos (apenas processando linhas IP e CIDR)) - teste (converta CIDR específico para outros formatos (somente para teste)) - texto (converta IP e CIDR de texto simples para outros formatos) - v2rayGeoIPDat (converta V2Ray GeoIP dat para outros formatos) Todos os formatos de saída disponíveis: - ClashRuleSet (Converter dados para o tipo ipcidr do Clash RuleSet) - ClashRuleSetClassical (converte dados para o tipo clássico de Clash RuleSet) - dbipCountryMMDB (converter dados para formato de banco de dados DB-IP country mmdb) - ipinfoCountryMMDB (converter dados para o formato de banco de dados IPInfo country mmdb) - pesquisa (pesquisa de IP ou CIDR especificado em vários formatos de dados) - maxmindMMDB (converter dados para o formato de banco de dados MaxMind mmdb) - mihomoMRS (converter dados para o formato mihomo MRS) - singboxSRS (converter dados para o formato SRS sing-box) - stdout (converte dados para formato CIDR de texto simples e saída para saída padrão) - surgeRuleSet (converter dados em Surge RuleSet) - texto (converter dados para formato CIDR de texto simples) - v2rayGeoIPDat (converter dados para o formato V2Ray GeoIP dat)
merge
)$ curl -s https://core.telegram.org/resources/cidr.txt ./geoip merge -t ipv4 | 91.105.192.0/23 91.108.4.0/22 91.108.8.0/21 91.108.16.0/21 91.108.56.0/22 149.154.160.0/20 185.76.151.0/24
convert
)$ ./geoip convert -c config.json 2021/08/29 12:11:35 ✅ [v2rayGeoIPDat] geoip.dat --> saída/dat 2021/08/29 12:11:35 ✅ [v2rayGeoIPDat] geoip-only-cn-private.dat --> saída/dat 2021/08/29 12:11:35 ✅ [v2rayGeoIPDat] geoip-asn.dat --> saída/dat 2021/08/29 12:11:35 ✅ [v2rayGeoIPDat] cn.dat --> saída/dat 2021/08/29 12:11:35 ✅ [v2rayGeoIPDat] private.dat --> saída/dat 2021/08/29 12:11:39 ✅ [maxmindMMDB] País.mmdb --> saída/maxmind 2021/08/29 12:11:39 ✅ [maxmindMMDB] Somente país-cn-private.mmdb --> saída/maxmind 2021/08/29 12:11:39 ✅ [texto] netflix.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] telegram.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] cn.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] cloudflare.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] cloudfront.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] facebook.txt -> saída/texto 2021/08/29 12:11:39 ✅ [texto] fastly.txt -> saída/texto 2021/08/29 12:11:45 ✅ [singboxSRS] netflix.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] telegram.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] cn.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] cloudflare.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] cloudfront.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] facebook.txt --> saída/srs 2021/08/29 12:11:45 ✅ [singboxSRS] fastly.txt -> saída/srs 2021/08/29 12:11:50 ✅ [mihomoMRS] netflix.txt --> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] telegram.txt --> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] cn.txt -> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] cloudflare.txt -> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] cloudfront.txt -> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] facebook.txt -> saída/sra. 2021/08/29 12:11:50 ✅ [mihomoMRS] fastly.txt -> saída/sra.
lookup
)Possíveis resultados de retorno:
A string de consulta não é um IP ou CIDR válido e false
é retornado.
O IP ou CIDR consultado não existe em nenhuma categoria, retorna false
O IP ou CIDR consultado existe em uma única categoria em um arquivo de algum formato:
Se o arquivo formatado contiver apenas uma categoria, retorne true
Se o arquivo formatado contiver múltiplas categorias, retorne o nome da categoria correspondente
O IP ou CIDR consultado existe em várias categorias e os nomes das categorias separados por vírgulas em inglês são retornados, como au,cloudflare
# ================ Modo Único ================= ## De arquivos locais em formato de texto (contendo apenas Pesquisa IP do arquivo local (com apenas uma lista) em formato de texto$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1true# Pesquisa IP do arquivo local (com apenas uma lista) em formato de texto$ . /geoip lookup -f text -u ./cn.txt 1.0.1.1true# Pesquisa IP do arquivo local (com apenas uma lista) em formato de texto$ ./geoip lookup -f text -u ./cn.txt 2.2.2.2 false# Pesquisa CIDR do arquivo local (com apenas uma lista) em formato de texto$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1/24true# Pesquisa CIDR do arquivo local (com apenas uma lista) em texto format$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1 /23false# Pesquisa IP de URL remoto (com apenas uma lista) em formato de texto$ ./geoip lookup -f text -u https:// example.com/cn.txt 1.0.1.1true# Pesquisa IP do arquivo local (com apenas uma lista) no formato v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u ./cn.dat 1.0.1.1true# Pesquisa IP do local arquivo (com várias listas) no formato v2rayGeoIPDat$ ./ geoip lookup -f v2rayGeoIPDat -u ./geoip.dat 1.0.1.1 cn# Pesquisa IP do arquivo local (com várias listas) no formato v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u ./geoip.dat 1.0 .0.1 au,cloudflare# pesquisa CIDR de URL remoto (com várias listas) no formato v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u https://example .com/geoip.dat 1.0.0.1/24 au,cloudflare# ================= Modo REPL ================== ## De arquivos locais em formato de texto (somente Pesquise IP ou CIDR do arquivo local (com apenas uma lista) em formato de texto$ ./geoip lookup -f text -u ./cn.txt Digite IP ou CIDR (digite "exit" para sair): >> 1.0.1.1true >> 1.0.1.1/24true >> 1.0.1.1/23false >> 2.2.2.2false >> 2.2.2.2/24false >> 300.300. 300.300false>> 300.300.300.300/24false>> exit# lookup IP ou CIDR de URL remoto (com apenas uma lista) em formato de texto $ ./geoip lookup -f text -u https://example.com/cn.txt Digite IP ou CIDR (digite "exit" para sair): >> 1.0.1.1true >> 1.0.1.1/24true >> 1.0.1.1/23false >> 2.2.2.2false >> 2.2.2.2/24false >> 300.300. 300.300false>> 300.300.300.300/24false>> exit# lookup IP ou CIDR do arquivo local (com apenas uma lista) no formato v2rayGeoIPDat $ ./geoip lookup -f v2rayGeoIPDat -u ./cn.dat Digite IP ou CIDR (digite "exit" para sair): >> 1.0.1.1true >> 1.0.1.1/24true >> 1.0.1.1/23false >> 2.2.2.2false >> 2.2.2.2/24false >> 300.300. 300.300false>> 300.300.300.300/24false>> exit# lookup IP ou CIDR de URL remoto (com lista múltipla) no formato v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u https://example.com/geoip.dat Digite IP ou CIDR (digite "exit" para sair): >> 1.0.1.1 cn >> 1.0.1.1/24 cn>> 1.0.1.1/23false>> 1.0.0.1 au,cloudflare>> 1.0.0.1/24 au,cloudflare>> 300.300.300.300false>> 300.300.300.300/24false>> sair
@Loyalsoldier/v2ray-rules-dat
@Loyalsoldier/clash-rules
@Loyalsoldier/regras de surto
CC-BY-SA-4.0 e GPL-3.0
Este produto inclui dados GeoLite2 criados pela MaxMind, disponíveis na MaxMind.