https://github.com/liberatti/nxguard-ipdb
Este projeto disponibiliza um endpoint HTTP para verificação e classificação de endereços IP, com base em feeds de reputação como FireHOL e MaxMind.
https://github.com/liberatti/nxguard-ipdb
geoip2 python reputation-api
Last synced: 4 months ago
JSON representation
Este projeto disponibiliza um endpoint HTTP para verificação e classificação de endereços IP, com base em feeds de reputação como FireHOL e MaxMind.
- Host: GitHub
- URL: https://github.com/liberatti/nxguard-ipdb
- Owner: liberatti
- License: apache-2.0
- Created: 2025-11-05T15:01:55.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-28T10:27:52.000Z (4 months ago)
- Last Synced: 2026-01-29T01:47:03.204Z (4 months ago)
- Topics: geoip2, python, reputation-api
- Language: Python
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NXGuard-IPdb
Este projeto expoem um endpoint http para consulta de ips, utilizando
feeds como firehol e MAXMIND.
### Interface de Linha de Comando (CLI)
A CLI é usada para inicializar e atualizar os bancos de dados.
- **Instalação:**
Para configurar o banco de dados pela primeira vez, execute:
```bash
python cli.py install
```
## Instalação
1. **Clone o repositório:**
```bash
git clone https://github.com/seu-usuario/nxguard-ipdb.git
cd nxguard-ipdb
```
2. **Instale as dependências:**
```bash
pip install -r requirements.txt
```
3. **Configure as credenciais:**
Para baixar os bancos de dados GeoLite2, você precisará de uma conta MaxMind. Adicione seu nome de usuário e senha ao
arquivo `config.py`.
4. **Inicialize o banco de dados:**
```bash
python cli.py install
```
5. **Inicie a aplicação:**
```bash
gunicorn -w 4 -b 0.0.0.0:5000 main:app
```
## Configuração de Feeds RBL
As *feeds* de RBL são definidas por arquivos JSON no diretório `config/`. Cada arquivo representa uma *feed* e deve
conter a URL da fonte e o formato dos dados.
**Exemplo de arquivo de *feed* (`config/feed-firehol_level1-network.json`):**
```json
{
"name": "firehol_level1",
"provider": "firehol",
"source": "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset",
"format": "cdir_text",
"restricted": false
}
```
## Dependências
As principais dependências incluem:
- `Flask`
- `requests`
- `geoip2`
- `schedule`
- `basic4web`
Para uma lista completa, veja o arquivo `requirements.txt`.
**Exemplo de Resposta:**
```json
{
"ans_number": 215925,
"country": "US",
"ipaddr": "87.121.84.3",
"latitude": 40.7126,
"longitude": -74.0066,
"organization": "Vpsvault.host Ltd",
"rbls": [
{
"broadcast": "87.121.84.255",
"feed": "firehol_level1",
"network": "87.121.84.0",
"prefix": 24,
"version": 4
}
]
}
```