# mmpg-rout
Biblioteca Python para gerenciar rotas de host no **Windows**, útil para cenários em que você precisa garantir que o tráfego para um destino (por exemplo, `dlmg.prodemge.gov.br`) seja direcionado para um gateway específico (exemplo: `10.14.56.1`).
---
## 📦 Instalação
Você pode instalar a partir do TestPyPI (ou futuramente PyPI oficial):
```powershell
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple mmpg-rout
```
Se estiver desenvolvendo localmente (na pasta do projeto):
```powershell
pip install -e .
```
Isso instalará o pacote no ambiente atual (conda/venv/etc.).
---
## 🚀 Uso no código Python
### Exemplo simples:
```python
from mmpg_rout import ensure_host_route
# Cria rota temporária (só até reiniciar)
ensure_host_route("dlmg.prodemge.gov.br", "10.14.56.1")
# Cria rota persistente (fica gravada no Windows)
ensure_host_route("dlmg.prodemge.gov.br", "10.14.56.1", persist=True)
```
* `hostname` → domínio ou IP do destino.
* `nexthop` → gateway da sua rede local.
* `persist=True` → mantém a rota mesmo após reiniciar.
### Integração em projetos que usam ODBC
Basta garantir a rota antes de conectar:
```python
from mmpg_rout import ensure_host_route
import pyodbc
# Garante a rota
ensure_host_route("dlmg.prodemge.gov.br", "10.14.56.1")
# Agora conecta normalmente
conn = pyodbc.connect("Driver={Cloudera ODBC Driver for Impala};...etc...")
```
Assim, qualquer código que rodar dentro desse ambiente já terá a rota configurada.
---
## 💻 Uso via CLI (linha de comando)
Após instalar o pacote, o comando `mmpg-rout` ficará disponível no terminal.
```powershell
# Rota temporária (só até reiniciar)
mmpg-rout --host dlmg.prodemge.gov.br --nexthop 10.14.56.1
# Rota persistente (precisa rodar PowerShell como administrador)
mmpg-rout --host dlmg.prodemge.gov.br --nexthop 10.14.56.1 --persist
```
### Funcionamento do modo persistente
Se você usar `--persist`, o Windows salva a rota de forma definitiva. Isso significa que **qualquer programa** (Python, navegador, ODBC, etc.) que tentar acessar o host especificado **sempre usará o gateway configurado**, sem precisar alterar o código.
### Verificando as rotas atuais:
```powershell
route print
```
### Removendo uma rota manualmente:
```powershell
route delete 10.100.62.20
```
*(substitua pelo IP real do host que foi resolvido)*
---
## 🔧 Alterando gateway ou máscara
Se precisar mudar o gateway, basta recriar a rota:
```python
ensure_host_route("dlmg.prodemge.gov.br", "NOVO_GATEWAY", persist=True)
```
Ou pela CLI:
```powershell
mmpg-rout --host dlmg.prodemge.gov.br --nexthop NOVO_GATEWAY --persist
```
A máscara usada é sempre `/32` (`255.255.255.255`) porque a rota é criada para **um único host**.
---
## ❌ Desinstalação
Para remover a biblioteca do ambiente Python:
```powershell
pip uninstall mmpg-rout
```
Para remover a rota persistente do Windows:
```powershell
route delete 10.100.62.20
```
---
## 📌 Resumo das opções
* **No código**: garante a rota a cada execução.
* **Via CLI (temporário)**: funciona até reiniciar o PC.
* **Via CLI (persistente)**: fica registrado no Windows e vale para todos os programas.
---
## 📖 Observações importantes
* Requer execução em Windows.
* Para rotas persistentes, o PowerShell precisa estar aberto como **Administrador**.
* Expor o host `10.100.62.20` ou o gateway **não representa risco de segurança**, pois são endereços de rede interna (não roteáveis na internet).
---
## 👨💻 Autor
* **Valfrido Novais**
PMMG · MMPG NOVAIS
Repositório: [github.com/ValfridoNovais/mmpg-rout](https://github.com/ValfridoNovais/mmpg-rout)
Raw data
{
"_id": null,
"home_page": null,
"name": "mmpg-rout",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "route, windows, gateway, networking, impala, bisp, pmmg",
"author": "Valfrido Novais",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/04/b3/28216f8d71e1b8cfe939b06fdc0850aec4358078861d665f453e254302c9/mmpg_rout-0.2.0.tar.gz",
"platform": null,
"description": "# mmpg-rout\r\n\r\nBiblioteca Python para gerenciar rotas de host no **Windows**, \u00fatil para cen\u00e1rios em que voc\u00ea precisa garantir que o tr\u00e1fego para um destino (por exemplo, `dlmg.prodemge.gov.br`) seja direcionado para um gateway espec\u00edfico (exemplo: `10.14.56.1`).\r\n\r\n---\r\n\r\n## \ud83d\udce6 Instala\u00e7\u00e3o\r\n\r\nVoc\u00ea pode instalar a partir do TestPyPI (ou futuramente PyPI oficial):\r\n\r\n```powershell\r\npip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple mmpg-rout\r\n```\r\n\r\nSe estiver desenvolvendo localmente (na pasta do projeto):\r\n\r\n```powershell\r\npip install -e .\r\n```\r\n\r\nIsso instalar\u00e1 o pacote no ambiente atual (conda/venv/etc.).\r\n\r\n---\r\n\r\n## \ud83d\ude80 Uso no c\u00f3digo Python\r\n\r\n### Exemplo simples:\r\n\r\n```python\r\nfrom mmpg_rout import ensure_host_route\r\n\r\n# Cria rota tempor\u00e1ria (s\u00f3 at\u00e9 reiniciar)\r\nensure_host_route(\"dlmg.prodemge.gov.br\", \"10.14.56.1\")\r\n\r\n# Cria rota persistente (fica gravada no Windows)\r\nensure_host_route(\"dlmg.prodemge.gov.br\", \"10.14.56.1\", persist=True)\r\n```\r\n\r\n* `hostname` \u2192 dom\u00ednio ou IP do destino.\r\n* `nexthop` \u2192 gateway da sua rede local.\r\n* `persist=True` \u2192 mant\u00e9m a rota mesmo ap\u00f3s reiniciar.\r\n\r\n### Integra\u00e7\u00e3o em projetos que usam ODBC\r\n\r\nBasta garantir a rota antes de conectar:\r\n\r\n```python\r\nfrom mmpg_rout import ensure_host_route\r\nimport pyodbc\r\n\r\n# Garante a rota\r\nensure_host_route(\"dlmg.prodemge.gov.br\", \"10.14.56.1\")\r\n\r\n# Agora conecta normalmente\r\nconn = pyodbc.connect(\"Driver={Cloudera ODBC Driver for Impala};...etc...\")\r\n```\r\n\r\nAssim, qualquer c\u00f3digo que rodar dentro desse ambiente j\u00e1 ter\u00e1 a rota configurada.\r\n\r\n---\r\n\r\n## \ud83d\udcbb Uso via CLI (linha de comando)\r\n\r\nAp\u00f3s instalar o pacote, o comando `mmpg-rout` ficar\u00e1 dispon\u00edvel no terminal.\r\n\r\n```powershell\r\n# Rota tempor\u00e1ria (s\u00f3 at\u00e9 reiniciar)\r\nmmpg-rout --host dlmg.prodemge.gov.br --nexthop 10.14.56.1\r\n\r\n# Rota persistente (precisa rodar PowerShell como administrador)\r\nmmpg-rout --host dlmg.prodemge.gov.br --nexthop 10.14.56.1 --persist\r\n```\r\n\r\n### Funcionamento do modo persistente\r\n\r\nSe voc\u00ea usar `--persist`, o Windows salva a rota de forma definitiva. Isso significa que **qualquer programa** (Python, navegador, ODBC, etc.) que tentar acessar o host especificado **sempre usar\u00e1 o gateway configurado**, sem precisar alterar o c\u00f3digo.\r\n\r\n### Verificando as rotas atuais:\r\n\r\n```powershell\r\nroute print\r\n```\r\n\r\n### Removendo uma rota manualmente:\r\n\r\n```powershell\r\nroute delete 10.100.62.20\r\n```\r\n\r\n*(substitua pelo IP real do host que foi resolvido)*\r\n\r\n---\r\n\r\n## \ud83d\udd27 Alterando gateway ou m\u00e1scara\r\n\r\nSe precisar mudar o gateway, basta recriar a rota:\r\n\r\n```python\r\nensure_host_route(\"dlmg.prodemge.gov.br\", \"NOVO_GATEWAY\", persist=True)\r\n```\r\n\r\nOu pela CLI:\r\n\r\n```powershell\r\nmmpg-rout --host dlmg.prodemge.gov.br --nexthop NOVO_GATEWAY --persist\r\n```\r\n\r\nA m\u00e1scara usada \u00e9 sempre `/32` (`255.255.255.255`) porque a rota \u00e9 criada para **um \u00fanico host**.\r\n\r\n---\r\n\r\n## \u274c Desinstala\u00e7\u00e3o\r\n\r\nPara remover a biblioteca do ambiente Python:\r\n\r\n```powershell\r\npip uninstall mmpg-rout\r\n```\r\n\r\nPara remover a rota persistente do Windows:\r\n\r\n```powershell\r\nroute delete 10.100.62.20\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udccc Resumo das op\u00e7\u00f5es\r\n\r\n* **No c\u00f3digo**: garante a rota a cada execu\u00e7\u00e3o.\r\n* **Via CLI (tempor\u00e1rio)**: funciona at\u00e9 reiniciar o PC.\r\n* **Via CLI (persistente)**: fica registrado no Windows e vale para todos os programas.\r\n\r\n---\r\n\r\n## \ud83d\udcd6 Observa\u00e7\u00f5es importantes\r\n\r\n* Requer execu\u00e7\u00e3o em Windows.\r\n* Para rotas persistentes, o PowerShell precisa estar aberto como **Administrador**.\r\n* Expor o host `10.100.62.20` ou o gateway **n\u00e3o representa risco de seguran\u00e7a**, pois s\u00e3o endere\u00e7os de rede interna (n\u00e3o rote\u00e1veis na internet).\r\n\r\n---\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Autor\r\n\r\n* **Valfrido Novais**\r\n PMMG \u00b7 MMPG NOVAIS\r\n\r\nReposit\u00f3rio: [github.com/ValfridoNovais/mmpg-rout](https://github.com/ValfridoNovais/mmpg-rout)\r\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/ValfridoNovais/mmpg-rout",
"Issues": "https://github.com/ValfridoNovais/mmpg-rout/issues",
"Repository": "https://github.com/ValfridoNovais/mmpg-rout"
},
"split_keywords": [
"route",
" windows",
" gateway",
" networking",
" impala",
" bisp",
" pmmg"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ceb69fe481ff1934bbe35e553e976cec19a25642af20546d683c22a06f50d1b0",
"md5": "0b3853150451b86e866cea3296ac9457",
"sha256": "4b76557a6c8eeedeade9b5ee328dca9c3a284857cf9063d7c26b98be7c16a6d2"
},
"downloads": -1,
"filename": "mmpg_rout-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0b3853150451b86e866cea3296ac9457",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 4306,
"upload_time": "2025-09-03T20:49:27",
"upload_time_iso_8601": "2025-09-03T20:49:27.882946Z",
"url": "https://files.pythonhosted.org/packages/ce/b6/9fe481ff1934bbe35e553e976cec19a25642af20546d683c22a06f50d1b0/mmpg_rout-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "04b328216f8d71e1b8cfe939b06fdc0850aec4358078861d665f453e254302c9",
"md5": "42cd6252619a7d3f0083a859ee86fb0d",
"sha256": "a446a42b9c5fbc70984eed0a2d8288e66442be63ef073d8017896b3ebd904a0c"
},
"downloads": -1,
"filename": "mmpg_rout-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "42cd6252619a7d3f0083a859ee86fb0d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4272,
"upload_time": "2025-09-03T20:49:28",
"upload_time_iso_8601": "2025-09-03T20:49:28.942649Z",
"url": "https://files.pythonhosted.org/packages/04/b3/28216f8d71e1b8cfe939b06fdc0850aec4358078861d665f453e254302c9/mmpg_rout-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-03 20:49:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ValfridoNovais",
"github_project": "mmpg-rout",
"github_not_found": true,
"lcname": "mmpg-rout"
}