diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-08 18:17:20 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-08 18:17:20 +0200 |
| commit | 8a78337ea4dcb0b154bd1c754218ca01c8f9015d (patch) | |
| tree | 2501c4ab66bffff5bc443553e769bedd9f035b33 /gemfeed/DRAFT-ipv6test-deployment.html | |
| parent | a37a644c48e824796989d532cefa564e7a3c89c1 (diff) | |
Update content for html
Diffstat (limited to 'gemfeed/DRAFT-ipv6test-deployment.html')
| -rw-r--r-- | gemfeed/DRAFT-ipv6test-deployment.html | 146 |
1 files changed, 76 insertions, 70 deletions
diff --git a/gemfeed/DRAFT-ipv6test-deployment.html b/gemfeed/DRAFT-ipv6test-deployment.html index 9bc33ffb..f74e27f7 100644 --- a/gemfeed/DRAFT-ipv6test-deployment.html +++ b/gemfeed/DRAFT-ipv6test-deployment.html @@ -2,12 +2,17 @@ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Deploying an IPv6 Test Service on Kubernetes</title> <link rel="shortcut icon" type="image/gif" href="/favicon.ico" /> <link rel="stylesheet" href="../style.css" /> <link rel="stylesheet" href="style-override.css" /> </head> -<body> +<body class="rfx-boot"> +<div class="rfx-overlay-grid"></div> +<div class="rfx-overlay-scanlines"></div> +<div id="rfx-stars"></div> +<div class="rfx-vignette"></div> <p class="header"> <a href="https://foo.zone">Home</a> | <a href="https://codeberg.org/snonux/foo.zone/src/branch/content-md/gemfeed/DRAFT-ipv6test-deployment.md">Markdown</a> | <a href="gemini://foo.zone/gemfeed/DRAFT-ipv6test-deployment.gmi">Gemini</a> </p> @@ -43,15 +48,15 @@ Client → relayd (OpenBSD) → Traefik (k3s) → Apache + CGI (Pod) by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><i><font color="silver">#!/usr/bin/perl</font></i> -<b><u><font color="#000000">use</font></u></b> strict; -<b><u><font color="#000000">use</font></u></b> warnings; +<pre><i><font color="#ababab">#!/usr/bin/perl</font></i> +<b><font color="#ffffff">use</font></b><font color="#ff0000"> strict</font><font color="#F3E651">;</font> +<b><font color="#ffffff">use</font></b><font color="#ff0000"> warnings</font><font color="#F3E651">;</font> -<b><u><font color="#000000">print</font></u></b> <font color="#808080">"Content-type: text/html\n\n"</font>; +<b><font color="#ffffff">print</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Content-type: text/html\n\n"</font><font color="#F3E651">;</font> -<b><u><font color="#000000">my</font></u></b> $is_ipv4 = ($ENV{REMOTE_ADDR} =~ <font color="#808080">/(?:\d+\.){3}\d/</font>); -<b><u><font color="#000000">print</font></u></b> <font color="#808080">"You are using: "</font> . ($is_ipv4 ? <font color="#808080">"IPv4"</font> : <font color="#808080">"IPv6"</font>) . <font color="#808080">"\n"</font>; -<b><u><font color="#000000">print</font></u></b> <font color="#808080">"Client address: $ENV{REMOTE_ADDR}\n"</font>; +<b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$is_ipv4</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$ENV</font><font color="#F3E651">{</font><font color="#ff0000">REMOTE_ADDR</font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><font color="#bb00ff">/(?:\d+\.){3}\d/</font><font color="#F3E651">);</font> +<b><font color="#ffffff">print</font></b><font color="#ff0000"> </font><font color="#bb00ff">"You are using: "</font><font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$is_ipv4</font><font color="#ff0000"> </font><font color="#F3E651">?</font><font color="#ff0000"> </font><font color="#bb00ff">"IPv4"</font><font color="#ff0000"> </font><font color="#F3E651">:</font><font color="#ff0000"> </font><font color="#bb00ff">"IPv6"</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">.</font><font color="#ff0000"> </font><font color="#bb00ff">"\n"</font><font color="#F3E651">;</font> +<b><font color="#ffffff">print</font></b><font color="#ff0000"> </font><font color="#bb00ff">"Client address: $ENV{REMOTE_ADDR}\n"</font><font color="#F3E651">;</font> </pre> <br /> <h2 style='display: inline' id='docker-image'>Docker Image</h2><br /> @@ -148,17 +153,17 @@ http protocol "https" { by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><% <b><u><font color="#000000">for</font></u></b> <b><u><font color="#000000">my</font></u></b> $host (@$f3s_hosts) { - <b><u><font color="#000000">my</font></u></b> $is_ipv6_only = $host =~ <font color="#808080">/^ipv6\./</font>; - <b><u><font color="#000000">my</font></u></b> $is_ipv4_only = $host =~ <font color="#808080">/^ipv4\./</font>; --%> -<font color="#808080"><% unless ($is_ipv6_only) { -%></font> -<font color="#808080"><%= $host %></font>. <font color="#000000">300</font> IN A <font color="#808080"><%= $ips-></font>{current_master}{ipv4} %> -<font color="#808080"><% } -%></font> -<font color="#808080"><% unless ($is_ipv4_only) { -%></font> -<font color="#808080"><%= $host %></font>. <font color="#000000">300</font> IN AAAA <font color="#808080"><%= $ips-></font>{current_master}{ipv6} %> -<font color="#808080"><% } -%></font> -<font color="#808080"><% } -%></font> +<pre><font color="#F3E651"><%</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$host</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@</font><font color="#ff0000">$f3s_hosts</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> +<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$is_ipv6_only</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$host</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><font color="#bb00ff">/^ipv6\./</font><font color="#F3E651">;</font> +<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$is_ipv4_only</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#ff0000">$host</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><font color="#bb00ff">/^ipv4\./</font><font color="#F3E651">;</font> +<font color="#F3E651">-%></font> +<font color="#bb00ff"><% unless ($is_ipv6_only) { -%></font> +<font color="#bb00ff"><%= $host %></font><font color="#F3E651">.</font><font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff"><%= $ips-></font><font color="#F3E651">{</font><font color="#ff0000">current_master</font><font color="#F3E651">}{</font><font color="#ff0000">ipv4</font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">%></font> +<font color="#bb00ff"><% } -%></font> +<font color="#bb00ff"><% unless ($is_ipv4_only) { -%></font> +<font color="#bb00ff"><%= $host %></font><font color="#F3E651">.</font><font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA </font><font color="#bb00ff"><%= $ips-></font><font color="#F3E651">{</font><font color="#ff0000">current_master</font><font color="#F3E651">}{</font><font color="#ff0000">ipv6</font><font color="#F3E651">}</font><font color="#ff0000"> </font><font color="#F3E651">%></font> +<font color="#bb00ff"><% } -%></font> +<font color="#bb00ff"><% } -%></font> </pre> <br /> <span>This ensures:</span><br /> @@ -179,22 +184,22 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><% <b><u><font color="#000000">for</font></u></b> <b><u><font color="#000000">my</font></u></b> $host (@$acme_hosts) { - <i><font color="silver"># Skip ipv4/ipv6 subdomains - they're included as SANs in parent cert</font></i> - <b><u><font color="#000000">next</font></u></b> <b><u><font color="#000000">if</font></u></b> $host =~ <font color="#808080">/^(ipv4|ipv6)\./</font>; --%> -<% <b><u><font color="#000000">my</font></u></b> @alt_names = (<font color="#808080">"www.$host"</font>); - <b><u><font color="#000000">for</font></u></b> <b><u><font color="#000000">my</font></u></b> $sub_host (@$acme_hosts) { - <b><u><font color="#000000">if</font></u></b> ($sub_host =~ <font color="#808080">/^(ipv4|ipv6)\.\Q$host\E$/</font>) { - <b><u><font color="#000000">push</font></u></b> @alt_names, $sub_host; - } - } --%> -domain <font color="#808080"><%= $host %></font> { - alternative names { <font color="#808080"><%= join(' ', @alt_names) %></font> } - ... -} -<font color="#808080"><% } -%></font> +<pre><font color="#F3E651"><%</font><font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$host</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@</font><font color="#ff0000">$acme_hosts</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> +<font color="#ff0000"> </font><i><font color="#ababab"># Skip ipv4/ipv6 subdomains - they're included as SANs in parent cert</font></i> +<font color="#ff0000"> </font><b><font color="#ffffff">next</font></b><font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#ff0000">$host</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><font color="#bb00ff">/^(ipv4|ipv6)\./</font><font color="#F3E651">;</font> +<font color="#F3E651">-%></font> +<font color="#F3E651"><%</font><font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">@alt_names</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#bb00ff">"www.$host"</font><font color="#F3E651">);</font> +<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$sub_host</font><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">@</font><font color="#ff0000">$acme_hosts</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> +<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">(</font><font color="#ff0000">$sub_host</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><font color="#bb00ff">/^(ipv4|ipv6)\.\Q$host\E$/</font><font color="#F3E651">)</font><font color="#ff0000"> </font><font color="#F3E651">{</font> +<font color="#ff0000"> </font><b><font color="#ffffff">push</font></b><font color="#ff0000"> </font><font color="#ff0000">@alt_names</font><font color="#F3E651">,</font><font color="#ff0000"> </font><font color="#ff0000">$sub_host</font><font color="#F3E651">;</font> +<font color="#ff0000"> </font><font color="#F3E651">}</font> +<font color="#ff0000"> </font><font color="#F3E651">}</font> +<font color="#F3E651">-%></font> +<font color="#ff0000">domain </font><font color="#bb00ff"><%= $host %></font><font color="#ff0000"> </font><font color="#F3E651">{</font> +<font color="#ff0000"> alternative names </font><font color="#F3E651">{</font><font color="#ff0000"> </font><font color="#bb00ff"><%= join(' ', @alt_names) %></font><font color="#ff0000"> </font><font color="#F3E651">}</font> +<font color="#ff0000"> </font><font color="#F3E651">...</font> +<font color="#F3E651">}</font> +<font color="#bb00ff"><% } -%></font> </pre> <br /> <span>This generates a single certificate for <span class='inlinecode'>ipv6test.f3s.buetow.org</span> that includes:</span><br /> @@ -211,19 +216,19 @@ domain <font color="#808080"><%= $host %></font> { by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><u><font color="#000000">our</font></u></b> @f3s_hosts = <b><u><font color="#000000">qw</font></u></b>/ - ... - ipv6test.f3s.buetow.org - ipv4.ipv6test.f3s.buetow.org - ipv6.ipv6test.f3s.buetow.org -/; +<pre><b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">@f3s_hosts</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">qw</font></b><font color="#F3E651">/</font> +<font color="#ff0000"> </font><font color="#F3E651">...</font> +<font color="#ff0000"> ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff0000"> ipv4</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff0000"> ipv6</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#F3E651">/;</font> -<b><u><font color="#000000">our</font></u></b> @acme_hosts = <b><u><font color="#000000">qw</font></u></b>/ - ... - ipv6test.f3s.buetow.org - ipv4.ipv6test.f3s.buetow.org - ipv6.ipv6test.f3s.buetow.org -/; +<b><font color="#ffffff">our</font></b><font color="#ff0000"> </font><font color="#ff0000">@acme_hosts</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">qw</font></b><font color="#F3E651">/</font> +<font color="#ff0000"> </font><font color="#F3E651">...</font> +<font color="#ff0000"> ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff0000"> ipv4</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#ff0000"> ipv6</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font> +<font color="#F3E651">/;</font> </pre> <br /> <span>Running <span class='inlinecode'>rex nsd httpd acme acme_invoke relayd</span> deploys the DNS zone, configures httpd for ACME challenges, obtains the certificates, and reloads relayd.</span><br /> @@ -236,17 +241,17 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre>$ dig ipv4.ipv6test.f3s.buetow.org A +short -<font color="#000000">46.23</font>.<font color="#000000">94.99</font> +<pre><font color="#ff0000">$ dig ipv4</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org A </font><font color="#F3E651">+</font><font color="#ff0000">short</font> +<font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font> -$ dig ipv4.ipv6test.f3s.buetow.org AAAA +short -(no output - IPv4 only) +<font color="#ff0000">$ dig ipv4</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org AAAA </font><font color="#F3E651">+</font><font color="#ff0000">short</font> +<font color="#F3E651">(</font><font color="#ff0000">no output - IPv4 only</font><font color="#F3E651">)</font> -$ dig ipv6.ipv6test.f3s.buetow.org AAAA +short -2a03:<font color="#000000">6000</font>:6f67:<font color="#000000">624</font>::<font color="#000000">99</font> +<font color="#ff0000">$ dig ipv6</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org AAAA </font><font color="#F3E651">+</font><font color="#ff0000">short</font> +<font color="#ff0000">2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font> -$ dig ipv6.ipv6test.f3s.buetow.org A +short -(no output - IPv6 only) +<font color="#ff0000">$ dig ipv6</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org A </font><font color="#F3E651">+</font><font color="#ff0000">short</font> +<font color="#F3E651">(</font><font color="#ff0000">no output - IPv6 only</font><font color="#F3E651">)</font> </pre> <br /> <span>Verify the application shows the correct test type:</span><br /> @@ -255,8 +260,8 @@ $ dig ipv6.ipv6test.f3s.buetow.org A +short by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre>$ curl -s https://ipv<font color="#000000">4</font>.ipv6test.f3s.buetow.org/cgi-bin/index.pl | grep <font color="#808080">"Test Results"</font> -<h3>IPv4 Only Test Results:</h<font color="#000000">3</font>> +<pre><font color="#ff0000">$ curl -s https</font><font color="#F3E651">:</font><font color="#ff0000">//ipv</font><font color="#bb00ff">4</font><font color="#F3E651">.</font><font color="#ff0000">ipv6test</font><font color="#F3E651">.</font><font color="#ff0000">f3s</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org/cgi-bin/index</font><font color="#F3E651">.</font><font color="#ff0000">pl </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#bb00ff">"Test Results"</font> +<font color="#F3E651"><</font><font color="#ff0000">h3</font><font color="#F3E651">></font><font color="#ff0000">IPv4 Only Test Results</font><font color="#F3E651">:<</font><font color="#ff0000">/h</font><font color="#bb00ff">3</font><font color="#F3E651">></font> </pre> <br /> <span>The displayed IP should be the real client IP, not an internal cluster address.</span><br /> @@ -273,15 +278,15 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -<pre><b><u><font color="#000000">sub</font></u></b> html_escape { - <b><u><font color="#000000">my</font></u></b> $str = <b><u><font color="#000000">shift</font></u></b>; - $str =~ <b><u><font color="#000000">s</font></u></b>/&/&amp;/<b><u><font color="#000000">g</font></u></b>; - $str =~ <b><u><font color="#000000">s</font></u></b>/</&lt;/<b><u><font color="#000000">g</font></u></b>; - $str =~ <b><u><font color="#000000">s</font></u></b>/>/&gt;/<b><u><font color="#000000">g</font></u></b>; - <b><u><font color="#000000">return</font></u></b> $str; -} +<pre><b><font color="#ffffff">sub</font></b><font color="#ff0000"> html_escape </font><font color="#F3E651">{</font> +<font color="#ff0000"> </font><b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$str</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b><font color="#F3E651">;</font> +<font color="#ff0000"> </font><font color="#ff0000">$str</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><b><font color="#ffffff">s</font></b><font color="#ff0000">/&/&amp;/</font><b><font color="#ffffff">g</font></b><font color="#F3E651">;</font> +<font color="#ff0000"> </font><font color="#ff0000">$str</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><b><font color="#ffffff">s</font></b><font color="#ff0000">/</&lt;/</font><b><font color="#ffffff">g</font></b><font color="#F3E651">;</font> +<font color="#ff0000"> </font><font color="#ff0000">$str</font><font color="#ff0000"> </font><font color="#F3E651">=~</font><font color="#ff0000"> </font><b><font color="#ffffff">s</font></b><font color="#ff0000">/>/&gt;/</font><b><font color="#ffffff">g</font></b><font color="#F3E651">;</font> +<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#ff0000">$str</font><font color="#F3E651">;</font> +<font color="#F3E651">}</font> -<b><u><font color="#000000">my</font></u></b> $digremote = html_escape(`dig -<b><u><font color="#000000">x</font></u></b> $ENV{REMOTE_ADDR}`); +<b><font color="#ffffff">my</font></b><font color="#ff0000"> </font><font color="#ff0000">$digremote</font><font color="#ff0000"> </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#7bc710">html_escape</font><font color="#F3E651">(</font><font color="#ff0000">`dig </font><font color="#F3E651">-</font><b><font color="#ffffff">x</font></b><font color="#ff0000"> </font><font color="#ff0000">$ENV</font><font color="#F3E651">{</font><font color="#ff0000">REMOTE_ADDR</font><font color="#F3E651">}</font><font color="#ff0000">`</font><font color="#F3E651">);</font> </pre> <br /> <span>You can verify the output passes validation:</span><br /> @@ -312,11 +317,12 @@ http://www.gnu.org/software/src-highlite --> <br /> <a class='textlink' href='./index.html'>← Back to the index</a><br /> <p class="footer"> - Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter 3.0.1-develop</a> | - served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/relayd.8">relayd(8)</a>+<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | - <a href="https://foo.zone/site-mirrors.html">Site Mirrors</a> - <br /> - Webring: <a href="https://shring.sh/foo.zone/previous">previous</a> | <a href="https://shring.sh">shring</a> | <a href="https://shring.sh/foo.zone/next">next</a> + Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter 3.0.1-develop</a> | + served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/relayd.8">relayd(8)</a>+<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | + <a href="https://foo.zone/site-mirrors.html">Site Mirrors</a> + <br /> + Webring: <a href="https://shring.sh/foo.zone/previous">previous</a> | <a href="https://shring.sh">shring</a> | <a href="https://shring.sh/foo.zone/next">next</a> </p> +<script type="text/javascript" src="../retrofuturistic.js"></script> </body> </html> |
