feat: funciones NordVPN bash y Go — CLI, contenedor Docker y parser de estado
Funciones bash para instalar, conectar, desconectar, estado, IP, ciudades, países y protocolo. Funciones Go para gestionar contenedor NordVPN (run/start/stop) y parsear estado. Incluye tipo NordVPNStatus y tests para el parser. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
---
|
||||
name: nordvpn_container_run
|
||||
kind: function
|
||||
lang: go
|
||||
domain: infra
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "func NordVPNContainerRun(opts NordVPNContainerRunOpts) (string, error)"
|
||||
description: "Ejecuta un container Docker cuyo trafico pasa por el gateway NordVPN usando --network=container:<gateway>. El container hereda la IP y tunel VPN del gateway."
|
||||
tags: [vpn, nordvpn, docker, container, run, infra, network]
|
||||
uses_functions: ["docker_run_container_go_infra"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: "error_go_core"
|
||||
imports: [fmt]
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "functions/infra/nordvpn_container_run.go"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```go
|
||||
// Verificar IP desde VPN
|
||||
id, err := NordVPNContainerRun(NordVPNContainerRunOpts{
|
||||
Image: "curlimages/curl",
|
||||
Cmd: []string{"https://api.ipify.org"},
|
||||
Remove: true,
|
||||
Gateway: "nordvpn",
|
||||
})
|
||||
|
||||
// Ejecutar scraper bajo VPN
|
||||
id, err := NordVPNContainerRun(NordVPNContainerRunOpts{
|
||||
Image: "my-scraper:latest",
|
||||
Env: map[string]string{"TARGET_URL": "https://example.com"},
|
||||
Volumes: []string{"/tmp/output:/output"},
|
||||
Detach: true,
|
||||
Name: "scraper-vpn",
|
||||
})
|
||||
|
||||
// Navegador headless bajo VPN
|
||||
id, err := NordVPNContainerRun(NordVPNContainerRunOpts{
|
||||
Image: "chromedp/headless-shell",
|
||||
Detach: true,
|
||||
Name: "chrome-vpn",
|
||||
})
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Requiere que el container gateway NordVPN este corriendo (usar `NordVPNContainerStart` primero). El container cliente no necesita capabilities especiales — hereda la red del gateway. Con `--network=container:X` el container no puede exponer puertos propios; los puertos deben mapearse en el gateway.
|
||||
Reference in New Issue
Block a user