An open API service indexing awesome lists of open source software.

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.

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
}
]
}
```