
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://livre.g6.asso.fr/index.php?action=history&amp;feed=atom&amp;title=La_commande_haah_%28host-address-address-host%29</id>
		<title>La commande haah (host-address-address-host) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://livre.g6.asso.fr/index.php?action=history&amp;feed=atom&amp;title=La_commande_haah_%28host-address-address-host%29"/>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;action=history"/>
		<updated>2026-05-25T02:50:48Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2956&amp;oldid=prev</id>
		<title>Bruno Deniaud at 10:53, 27 February 2006</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2956&amp;oldid=prev"/>
				<updated>2006-02-27T10:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:53, 27 February 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{suivi| Les primitives de conversion entre noms et adresses | Les primitives de conversion entre noms et adresses | Exemple de client/serveur TCP | Exemple de client/serveur TCP }}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'exemple proposé n'est autre qu'une sorte de nslookup (très) simplifié. Si par exemple on lui donne en argument une adresse numérique (IPv4 ou IPv6), il imprime le nom complètement qualifié correspondant lorsque la requête DNS aboutit. L'extrait de session qui suit illustre l'utilisation de cette commande.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;L'exemple proposé n'est autre qu'une sorte de nslookup (très) simplifié. Si par exemple on lui donne en argument une adresse numérique (IPv4 ou IPv6), il imprime le nom complètement qualifié correspondant lorsque la requête DNS aboutit. L'extrait de session qui suit illustre l'utilisation de cette commande.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L86&quot; &gt;Line 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 70|&amp;#160; &amp;#160; exit(0);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 70|&amp;#160; &amp;#160; exit(0);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 71| }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 71| }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{suivi| Les primitives de conversion entre noms et adresses | Les primitives de conversion entre noms et adresses | Exemple de client/serveur TCP | Exemple de client/serveur TCP }}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bruno Deniaud</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2304&amp;oldid=prev</id>
		<title>Laurent Toutain at 19:22, 15 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2304&amp;oldid=prev"/>
				<updated>2005-12-15T19:22:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;amp;diff=2304&amp;amp;oldid=2303&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2303&amp;oldid=prev</id>
		<title>Laurent Toutain at 18:22, 15 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2303&amp;oldid=prev"/>
				<updated>2005-12-15T18:22:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 18:22, 15 December 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L17&quot; &gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{|&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1||&amp;#160; #include &amp;lt;stdio.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1||&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;tt&amp;gt; &lt;/ins&gt; #include &amp;lt;stdio.h&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt; &amp;lt;/tt&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|2||&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|2||&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2302&amp;oldid=prev</id>
		<title>Laurent Toutain at 18:21, 15 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2302&amp;oldid=prev"/>
				<updated>2005-12-15T18:21:09Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 18:21, 15 December 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Le programme réalisant la commande &amp;lt;tt&amp;gt;haah&amp;lt;/tt&amp;gt; ne présente aucune difficulté. C'est une simple application des primitives précédemment décrites.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Le programme réalisant la commande &amp;lt;tt&amp;gt;haah&amp;lt;/tt&amp;gt; ne présente aucune difficulté. C'est une simple application des primitives précédemment décrites.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;tt&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{|&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1||&amp;#160; #include &amp;lt;stdio.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|1||&amp;#160; #include &amp;lt;stdio.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L157&quot; &gt;Line 157:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|71|| }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|71|| }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/tt&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2301&amp;oldid=prev</id>
		<title>Laurent Toutain at 18:18, 15 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2301&amp;oldid=prev"/>
				<updated>2005-12-15T18:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;amp;diff=2301&amp;amp;oldid=2300&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2300&amp;oldid=prev</id>
		<title>Laurent Toutain at 18:15, 15 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2300&amp;oldid=prev"/>
				<updated>2005-12-15T18:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;amp;diff=2300&amp;amp;oldid=2270&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2270&amp;oldid=prev</id>
		<title>Laurent Toutain at 07:58, 14 December 2005</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=La_commande_haah_(host-address-address-host)&amp;diff=2270&amp;oldid=prev"/>
				<updated>2005-12-14T07:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;L'exemple proposé n'est autre qu'une sorte de nslookup (très) simplifié. Si par exemple on lui donne en argument une adresse numérique (IPv4 ou IPv6), il imprime le nom complètement qualifié correspondant lorsque la requête DNS aboutit. L'extrait de session qui suit illustre l'utilisation de cette commande.&lt;br /&gt;
&lt;br /&gt;
 $ '''haah bernays'''&lt;br /&gt;
 Canonical name:&lt;br /&gt;
 bernays.ipv6.logique.jussieu.fr&lt;br /&gt;
 Adresses:&lt;br /&gt;
 2001:660:101:101:200:f8ff:fe31:17ec&lt;br /&gt;
 3ffe:304:101:1:200:f8ff:fe31:17ec&lt;br /&gt;
 $ '''haah 134.157.19.71'''&lt;br /&gt;
 Canonical name:&lt;br /&gt;
 bernays.logique.jussieu.fr&lt;br /&gt;
 Adresses:&lt;br /&gt;
 134.157.19.71&lt;br /&gt;
 $&lt;br /&gt;
&lt;br /&gt;
Le programme réalisant la commande &amp;lt;tt&amp;gt;haah&amp;lt;/tt&amp;gt; ne présente aucune difficulté. C'est une simple application des primitives précédemment décrites.&lt;br /&gt;
 &lt;br /&gt;
	&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;string.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;netdb.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
 int main(int argc, char **argv)&lt;br /&gt;
 {&lt;br /&gt;
    int ret;&lt;br /&gt;
    struct addrinfo *res, *ptr;&lt;br /&gt;
    struct addrinfo hints = {&lt;br /&gt;
       AI_CANONNAME,&lt;br /&gt;
       PF_UNSPEC,&lt;br /&gt;
       SOCK_STREAM,&lt;br /&gt;
       0,&lt;br /&gt;
       0,&lt;br /&gt;
       NULL,&lt;br /&gt;
       NULL,&lt;br /&gt;
       NULL&lt;br /&gt;
    };&lt;br /&gt;
  	&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
       fprintf(stderr, &amp;quot;%s: usage: %s host | addr.\n&amp;quot;, *argv, *argv);&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    ret = getaddrinfo(argv[1], NULL, &amp;amp;hints, &amp;amp;res);&lt;br /&gt;
    if (ret) {&lt;br /&gt;
       fprintf(stderr, &amp;quot;getaddrinfo: %s\n&amp;quot;, gai_strerror(ret));&lt;br /&gt;
       exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    for (ptr = res; ptr; ptr = ptr-&amp;gt;ai_next) {&lt;br /&gt;
       if (ptr-&amp;gt;ai_canonname)&lt;br /&gt;
          fprintf(stdout,&amp;quot;Canonical name:\n%s\nAdresses:\n&amp;quot;, ptr-&amp;gt;ai_canonname);&lt;br /&gt;
       switch (ptr-&amp;gt;ai_family) {&lt;br /&gt;
          case AF_INET:&lt;br /&gt;
          {&lt;br /&gt;
             char dst[INET_ADDRSTRLEN];&lt;br /&gt;
             struct in_addr *src = &amp;amp;((struct sockaddr_in *) ptr-&amp;gt;ai_addr)-&amp;gt;sin_addr;&lt;br /&gt;
      &lt;br /&gt;
             if(!inet_ntop(AF_INET, (const void *) src, dst, sizeof(dst))) {&lt;br /&gt;
                fprintf(stderr, &amp;quot;inet_ntop: %s\n&amp;quot;, strerror(errno));&lt;br /&gt;
                break;&lt;br /&gt;
             }&lt;br /&gt;
             fprintf(stdout, &amp;quot;%s\n&amp;quot;, dst);&lt;br /&gt;
             break;&lt;br /&gt;
          } &lt;br /&gt;
          case AF_INET6:&lt;br /&gt;
          {&lt;br /&gt;
             char dst[INET6_ADDRSTRLEN];&lt;br /&gt;
             struct in6_addr *src=&amp;amp;((struct sockaddr_in6 *)ptr-&amp;gt;ai_addr)-&amp;gt;sin6_addr;&lt;br /&gt;
     &lt;br /&gt;
             if (!inet_ntop(AF_INET6, (const void *) src, dst, sizeof(dst))) {&lt;br /&gt;
                fprintf(stderr, &amp;quot;inet_ntop: %s\n&amp;quot;, strerror(errno));&lt;br /&gt;
                break;&lt;br /&gt;
             }&lt;br /&gt;
             fprintf(stdout, &amp;quot;%s\n&amp;quot;, dst);&lt;br /&gt;
             break;&lt;br /&gt;
          }&lt;br /&gt;
          default:&lt;br /&gt;
             fprintf(stderr, &amp;quot;getaddrinfo: %s\n&amp;quot;, strerror(EAFNOSUPPORT));&lt;br /&gt;
       }&lt;br /&gt;
    } &lt;br /&gt;
    freeaddrinfo(res);&lt;br /&gt;
    exit(0);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Laurent Toutain</name></author>	</entry>

	</feed>