IPv6 Prefix via Nginx, LUA und einem einfachen Bash-Script ausgeben (ohne PHP)

Posted on Fr 30 April 2021 in Linux

Hi,

ein Snippet (mal wieder). Daher ganz kurz und knapp.

Unter Debian benötigt ihr die Pakete nginx-full sowie subnetcalc, da hier die entsprechenden LUA Module vorhanden sind. Wer ganz wild drauf ist, kompiliert es sich nach... :)

In der entsprechenden Site-Konfiguration:

  location / {
    default_type 'text/plain';
    content_by_lua_block {
        local handle = io.popen("/opt/ip6_prefix.sh")
        local result = handle:read("*a")
        handle:close()
        ngx.header.content_type = "text/plain"
        ngx.say(result)
    }
  }

Das Script /opt/ip6_prefix.sh:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
subnetcalc $(curl -6 ip6.mailcow.email -s) 64 -n | grep Network | cut -d= -f2 | tr -d '[:space:]'

Anschließend als ausführbar markieren durch chmod +x /opt/ip6_prefix.sh