<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Enodev.fr / Christophe's log (Posts about Internet)</title><link>https://www.enodev.fr/</link><description></description><atom:link href="https://www.enodev.fr/categories/cat_internet.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Sat, 22 Feb 2025 18:03:00 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Des robots pour visiteurs</title><link>https://www.enodev.fr/posts/des-robots-pour-visiteurs.html</link><dc:creator>Christophe Vu-Brugier</dc:creator><description>&lt;p&gt;&lt;link rel="stylesheet" href="https://www.enodev.fr/bots/cal-heatmap.css"&gt;&lt;/p&gt;
&lt;p&gt;Quand je lis les journaux de mon serveur Web, j'ai l'impression que la
plupart des visiteurs sont des robots.&lt;/p&gt;
&lt;div id="bot-ratio-monthly"&gt;&lt;/div&gt;
&lt;script src="https://www.enodev.fr/bots/bot-ratio-plot.js"&gt;&lt;/script&gt;

&lt;p&gt;La part des visiteurs qui s'identifient comme des robots via leur user
agent est passée de moins de 30 % début 2024 à 40 % en
décembre.&lt;/p&gt;
&lt;p&gt;L'entraînement des modèles
d&lt;a href="https://fr.wikipedia.org/wiki/Intelligence_artificielle_g%C3%A9n%C3%A9rative"&gt;'IA générative&lt;/a&gt;
tels que les
&lt;a href="https://fr.wikipedia.org/wiki/Grand_mod%C3%A8le_de_langage"&gt;LLM&lt;/a&gt;
nécessite un corpus toujours plus grand de données. Les entreprises du
secteur ont donc développé des programmes qui parcourent le Web pour
enregistrer le contenu des sites visités. Aux visiteurs de longue date
que sont
&lt;a href="http://www.google.com/bot.html"&gt;Googlebot&lt;/a&gt; et
&lt;a href="http://www.bing.com/bingbot.htm"&gt;Bingbot&lt;/a&gt; se sont ajoutés
&lt;a href="https://openai.com/gptbot"&gt;GPTBot&lt;/a&gt;,
ClaudeBot,
&lt;a href="https://developer.amazon.com/support/amazonbot"&gt;Amazonbot&lt;/a&gt;, et bien d'autres.&lt;/p&gt;
&lt;h2&gt;Comment évaluer la part des robots parmi les visiteurs à partir des journaux ?&lt;/h2&gt;
&lt;p&gt;Les serveurs Web comme Apache enregistrent des informations sur les
requêtes HTTP traitées dans un
&lt;a href="https://httpd.apache.org/docs/2.4/fr/logs.html#accesslog"&gt;fichier journal des accès&lt;/a&gt;.
Parmi ces informations figure l'en-tête
&lt;a href="https://developer.mozilla.org/fr/docs/Glossary/User_agent"&gt;user agent&lt;/a&gt;
de la requête HTTP. Il s'agit d'une chaîne de caractère qui identifie
le navigateur Web.&lt;/p&gt;
&lt;p&gt;Le user agent des robots d'indexation contient en général les termes
&lt;em&gt;bot&lt;/em&gt;, &lt;em&gt;crawler&lt;/em&gt; ou &lt;em&gt;spider&lt;/em&gt;. Toutefois, un robot peut prétendre être
un banal navigateur Web en usurpant son user agent.&lt;/p&gt;
&lt;p&gt;Je suggère d'utiliser le logiciel libre
&lt;a href="https://github.com/rcoh/angle-grinder"&gt;Angle-grinder&lt;/a&gt;
pour analyser le fichier journal des accès d'Apache et estimer le
ratio des requêtes valides envoyées par des robots.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;agrind&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;a.log&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"* | apache | where status == 200 | if(contains(toLowerCase(contentlength), 'bot'), 1, 0) as bot_req | avg(bot_req) as bot_req_ratio"&lt;/span&gt;
&lt;span class="go"&gt;bot_req_ratio&lt;/span&gt;
&lt;span class="go"&gt;---------------------&lt;/span&gt;
&lt;span class="go"&gt;0.40&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Les pipelines, séparés par le caractère &lt;code&gt;|&lt;/code&gt;, sont composés ainsi :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Toutes les entrées du fichier journal sont sélectionnées avec le
   caractère &lt;code&gt;*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Le parser pour le format du journal d'Apache interprète les champs.&lt;/li&gt;
&lt;li&gt;Seules les requêtes dont le statut de réponse HTTP est
   &lt;a href="https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200"&gt;200&lt;/a&gt; sont conservées.
   En effet, de nombreuses requêtes sont invalides et ne nous intéressent pas.
   Par exemple, des requêtes émanant de robots à la recherche de vulnérabilités à exploiter.&lt;/li&gt;
&lt;li&gt;De façon étrange, le user agent est contenu dans le champ &lt;code&gt;contentlength&lt;/code&gt;.
   Si le champ contient la chaîne de caractères &lt;code&gt;"bot"&lt;/code&gt;, on définit le champ &lt;code&gt;bot_req&lt;/code&gt; à 1, sinon à 0.
   On peut étendre cette condition pour inclure les termes moins fréquents &lt;code&gt;"crawler"&lt;/code&gt; et &lt;code&gt;"spider"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enfin, la valeur moyenne du champ &lt;code&gt;bot_req&lt;/code&gt; est calculée.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Quels sont les robots les plus actifs ?&lt;/h2&gt;
&lt;p&gt;Voici la liste des cinq robots les plus actifs sur ce site en 2024.&lt;/p&gt;
&lt;table class="table table-striped"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rang&lt;/th&gt;
&lt;th&gt;Nom du robot&lt;/th&gt;
&lt;th&gt;Propriétaire&lt;/th&gt;
&lt;th&gt;Part des requêtes HTTP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Googlebot&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;4.72 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;GPTBot&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;2.82 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;bingbot&lt;/td&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;td&gt;1.50 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;YandexBot&lt;/td&gt;
&lt;td&gt;Yandex&lt;/td&gt;
&lt;td&gt;1.34 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Bytespider&lt;/td&gt;
&lt;td&gt;ByteDance&lt;/td&gt;
&lt;td&gt;1.01 %&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2&gt;Comment a évolué l'activité des robots au cours de l'année ?&lt;/h2&gt;
&lt;p&gt;Les graphiques qui suivent représentent l'activité des robots les plus
connus sous la forme d'une
&lt;a href="https://fr.wikipedia.org/wiki/Carte_thermique"&gt;carte thermique&lt;/a&gt;
du calendrier.&lt;/p&gt;
&lt;p&gt;Chaque case symbolise un jour de l'année. Les jours se suivent
verticalement du lundi au dimanche et sont groupés par mois. La
couleur d'une case varie du jaune pâle au rouge foncé en fonction du
nombre de requêtes HTTP reçues ce jour là.&lt;/p&gt;
&lt;p&gt;Les graphiques sont affichés par la bibliothèque JavaScript
&lt;a href="https://cal-heatmap.com/"&gt;Cal-Heatmap&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Googlebot&lt;/h3&gt;
&lt;p&gt;Très actifs, les robots de Google ont visité le site tous les jours en 2024.&lt;/p&gt;
&lt;div id="calendar-googlebot"&gt;&lt;/div&gt;

&lt;h3&gt;GPTBot&lt;/h3&gt;
&lt;p&gt;Les robots d'OpenAI ont visité le site 212 jours en 2024.
Rares en début d'année, ils ont été très présents en octobre.&lt;/p&gt;
&lt;div id="calendar-gptbot"&gt;&lt;/div&gt;

&lt;h3&gt;Bingbot&lt;/h3&gt;
&lt;p&gt;Les robots de Microsoft ont visité le site tous les jours en 2024.&lt;/p&gt;
&lt;div id="calendar-bingbot"&gt;&lt;/div&gt;

&lt;h3&gt;YandexBot&lt;/h3&gt;
&lt;p&gt;Les robots de Yandex ont visité le site 342 jours en 2024 mais ont été
plus discrets à partir du mois de septembre.&lt;/p&gt;
&lt;div id="calendar-yandexbot"&gt;&lt;/div&gt;

&lt;h3&gt;Bytespider&lt;/h3&gt;
&lt;p&gt;Les robots de ByteDance ont visité le site 254 jours en 2024 et ont
été plus actifs de juillet à septembre.&lt;/p&gt;
&lt;div id="calendar-bytespider"&gt;&lt;/div&gt;

&lt;h3&gt;AmazonBot&lt;/h3&gt;
&lt;p&gt;Les robots d'Amazon apparaissent au septième rang et se distinguent
dans leurs accès : ils indexent l'ensemble du site une fois par mois.&lt;/p&gt;
&lt;div id="calendar-amazonbot"&gt;&lt;/div&gt;

&lt;h3&gt;ClaudeBot&lt;/h3&gt;
&lt;p&gt;Classés au neuvième rang par leur activité, les robots d'Anthropic ont
visité le site 50 jours en 2024, principalement en avril et en mai.&lt;/p&gt;
&lt;div id="calendar-claudebot"&gt;&lt;/div&gt;

&lt;script&gt;
function drawCalendar(divId, dataSource) {
    const cal = new CalHeatmap();
    cal.paint({
        itemSelector: `#${divId}`,
        date: {locale: {weekStart: 1}, start: new Date('2024-01-01')},
        data: {source: dataSource, x: 'd', y: 'c', defaultValue: 0},
        range: 12,
        domain: {type: 'month'},
        subDomain: {type: 'day'},
        scale: {
            color: {
                'scheme': 'YlOrRd',
                'type': 'sqrt',
                'domain': [0, 200]
            }
        }
    });
    render(`&lt;div id="${divId}"&gt;&lt;/div&gt;`);
}

const botnames = ["googlebot", "gptbot", "bingbot", "yandexbot", "bytespider", "amazonbot", "claudebot"];
botnames.forEach(function (botname) {
    const divId = `calendar-${botname}`;
    const dataSource = `/bots/${botname}-2024.json`;
    window.addEventListener("load", function() {
        drawCalendar(divId, dataSource);
    });
});
&lt;/script&gt;

&lt;h2&gt;IA quelqu'un ?&lt;/h2&gt;
&lt;p&gt;Les robots représentent une part croissante des visiteurs de ce
site. Ils deviendront peut-être majoritaires en 2025.&lt;/p&gt;
&lt;p&gt;Toutefois, j'aimerais qu'ils butinent plus sobrement le contenu du
site pour ne pas consommer inutilement ses ressources informatiques.&lt;/p&gt;
&lt;p&gt;Ils pourraient s'inspirer de l'efficacité discrète de ce butineur
insaisissable.&lt;/p&gt;
&lt;div class="caption"&gt;
  &lt;img src="https://www.enodev.fr/images/moro-sphinx.jpg" class="img-fluid rounded" alt="Un Moro-sphinx (Macroglossum stellatarum) butine du Chèvrefeuille."&gt;
  &lt;p&gt;Un &lt;a href="https://fr.wikipedia.org/wiki/Moro-sphinx"&gt;Moro-sphinx&lt;/a&gt; (&lt;em&gt;Macroglossum stellatarum&lt;/em&gt;) butine du Chèvrefeuille.&lt;/p&gt;
&lt;/div&gt;</description><category>Angle-grinder</category><category>Apache</category><category>DataViz</category><category>Heatmap</category><category>Internet</category><category>Robots</category><guid>https://www.enodev.fr/posts/des-robots-pour-visiteurs.html</guid><pubDate>Sun, 26 Jan 2025 15:00:00 GMT</pubDate></item><item><title>Statistiques d'accès au site en IPv6</title><link>https://www.enodev.fr/posts/statistiques-acces-au-site-en-ipv6.html</link><dc:creator>Christophe Vu-Brugier</dc:creator><description>&lt;p&gt;Le mois dernier, j'ai observé que bien que mon serveur Web possédât
une adresse &lt;a href="https://fr.wikipedia.org/wiki/IPv6"&gt;IPv6&lt;/a&gt;, aucun
navigateur Web ne s'y connectait via ce protocole. J'avais tout
simplement oublié d'associer un enregistrement &lt;em&gt;IPv6 address record&lt;/em&gt;
au nom de mon domaine dans la zone
&lt;a href="https://fr.wikipedia.org/wiki/Domain_Name_System"&gt;DNS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un mois plus tard, la lecture des logs de mon serveur Web confirme
qu'une partie des navigateurs Web s'y connectent en IPv6 et je peux
mesurer dans quelle proportion.&lt;/p&gt;
&lt;h2&gt;Dites AAAA&lt;/h2&gt;
&lt;p&gt;Sur Internet, le service DNS associe les noms de domaine Internet avec
leurs adresses IP.&lt;/p&gt;
&lt;p&gt;La plupart des sites Internet déclarent des adresses IPv4 dans leur
zone DNS à travers des enregistrements DNS A (&lt;em&gt;A&lt;/em&gt; pour &lt;em&gt;Adresse&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Conscients de
&lt;a href="https://fr.wikipedia.org/wiki/%C3%89puisement_des_adresses_IPv4"&gt;l'épuisement des adresses IPv4&lt;/a&gt;,
de plus en plus de sites Internet sont aussi accessibles en IPv6. Pour permettre aux
navigateurs Web de résoudre leur nom de domaine en adresses IPv6,
ils ajoutent des enregistrements DNS AAAA dans leur zone DNS.
Les quatre "A" dénotent le fait qu'une adresse IPv6 (128 bits) est
quatre fois plus longue qu'une adresse IPv4 (32 bits).&lt;/p&gt;
&lt;p&gt;Sous Linux, l'outil &lt;a href="https://www.mankier.com/1/dig"&gt;dig&lt;/a&gt; permet
d'effectuer des requêtes DNS en ligne de commande et donc de vérifier
si un site Internet déclare être accessible en IPv4 &lt;em&gt;et&lt;/em&gt; en IPv6.&lt;/p&gt;
&lt;p&gt;Pour afficher l'adresse IPv4 associée à un nom de domaine :&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;dig&lt;span class="w"&gt; &lt;/span&gt;+short&lt;span class="w"&gt; &lt;/span&gt;enodev.fr&lt;span class="w"&gt; &lt;/span&gt;A
&lt;span class="go"&gt;159.69.222.76&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et pour obtenir l'adresse IPv6 éventuellement associée :&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;dig&lt;span class="w"&gt; &lt;/span&gt;+short&lt;span class="w"&gt; &lt;/span&gt;enodev.fr&lt;span class="w"&gt; &lt;/span&gt;AAAA
&lt;span class="go"&gt;2a01:4f8:1c1e:b2d0::1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Qui AAAAccède ?&lt;/h2&gt;
&lt;p&gt;Le
&lt;a href="https://httpd.apache.org/docs/2.4/fr/logs.html#accesslog"&gt;fichier journal des accès&lt;/a&gt;
du serveur HTTP Apache enregistre les requêtes qu'il a traitées.&lt;/p&gt;
&lt;p&gt;Dans le format par défaut du fichier journal des accès, l'adresse IP
du client figure au début de chaque ligne.&lt;/p&gt;
&lt;p&gt;L'extrait de journal suivant présente une requête HTTP effectuée par
un navigateur Web connecté en IPv4 suivie d'une requête formulée
par un autre navigateur Web connecté en IPv6 :&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;24.35.90.123 - - [01/Oct/2023:00:03:20 +0200] "GET /posts/rusticity-convert-an-integer-to-an-enum.html HTTP/2.0" 200 6966 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
2a02:8308:285:e800:9807:3eea:1a93:1234 - - [01/Oct/2023:00:03:30 +0200] "GET /posts/rusticity-convert-an-integer-to-an-enum.html HTTP/2.0" 200 6966 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43"
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Analyse des accès avec Angle-grinder&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rcoh/angle-grinder"&gt;Angle-grinder&lt;/a&gt; est un outil en
ligne de commande qui permet d'interpréter des données en effectuant
des opérations de tri, de sélection, de groupement, ou des
calculs. Angle-grinder est notamment capable d'interpréter directement
un fichier journal des accès d'Apache. Ceci va nous aider à mesurer
dans quelle proportion les navigateurs Web se connectent au site en
IPv6.&lt;/p&gt;
&lt;p&gt;Voici une façon de compter le nombre d'adresse IP différentes qui se
sont connectées au serveur HTTP avec Angle-grinder:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;agrind&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;apache.log&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"* | apache | count_distinct(ip) as unique_ipaddrs"&lt;/span&gt;
&lt;span class="go"&gt;unique_ipaddrs&lt;/span&gt;
&lt;span class="go"&gt;----------------------&lt;/span&gt;
&lt;span class="go"&gt;5326&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Les pipelines, séparés par le caractère &lt;code&gt;|&lt;/code&gt;, sont composés ainsi :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Toutes les entrées du fichier journal sont sélectionnées avec le
   caractère &lt;code&gt;*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Le parser pour le format du journal d'Apache interprète les champs.&lt;/li&gt;
&lt;li&gt;L'opérateur d'agrégation &lt;code&gt;count_distinct()&lt;/code&gt; est appelé sur le champ
   nommé &lt;code&gt;ip&lt;/code&gt;. La colonne de résultat est nommée &lt;code&gt;unique_ipaddrs&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pour dénombrer le nombre d'adresse &lt;em&gt;IPv6&lt;/em&gt; différentes, il suffit
d'ajouter un filtre qui sélectionne les adresses IP qui contiennent le
séparateur &lt;code&gt;:&lt;/code&gt;.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;agrind&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;apache.log&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"* | apache | contains(ip, ':') as is_ipv6 | where is_ipv6 | count_distinct(ip) as unique_ipv6addrs"&lt;/span&gt;
&lt;span class="go"&gt;unique_ipv6addrs&lt;/span&gt;
&lt;span class="go"&gt;------------------------&lt;/span&gt;
&lt;span class="go"&gt;500&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;9,4 % des navigateurs Web se connectent donc au site en IPv6. La
part des &lt;em&gt;requêtes&lt;/em&gt; HTTP effectuées en IPv6 est assez proche –
10 % – comme on peut le constater avec la requête suivante :&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;agrind&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;apache.log&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"* | apache | contains(ip, ':') as is_ipv6 | if(is_ipv6, 1, 0) as ipv6_req | avg(ipv6_req) as ipv6_req_ratio"&lt;/span&gt;
&lt;span class="go"&gt;ipv6_req_ratio&lt;/span&gt;
&lt;span class="go"&gt;----------------------&lt;/span&gt;
&lt;span class="go"&gt;0.10&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il sera intéressant de suivre la progression du ratio des accès
réalisés en IPv6 dans le temps.&lt;/p&gt;
&lt;p&gt;Note: en décembre 2024, 14 % des requêtes HTTP sont effectuées en IPv6.&lt;/p&gt;
&lt;div class="caption"&gt;
  &lt;img src="https://www.enodev.fr/images/araignee-toile-ipv6.jpg" class="img-fluid rounded" alt="Une épeire fasciée sur sa toile. Connectée en IPv6 ?"&gt;
  &lt;p&gt;Une &lt;a href="https://fr.wikipedia.org/wiki/Argiope_frelon"&gt;épeire fasciée&lt;/a&gt; sur sa toile. Connectée en IPv6 ?&lt;/p&gt;
&lt;/div&gt;</description><category>Angle-grinder</category><category>Apache</category><category>DNS</category><category>IPv6</category><guid>https://www.enodev.fr/posts/statistiques-acces-au-site-en-ipv6.html</guid><pubDate>Sat, 30 Sep 2023 20:55:42 GMT</pubDate></item></channel></rss>