xref: /nrf52832-nimble/rt-thread/components/net/uip/doc/html/a00148.html (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2*10465441SEvalZero<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3*10465441SEvalZero<title>uIP 1.0: uIP conversion functions</title>
4*10465441SEvalZero<link href="doxygen.css" rel="stylesheet" type="text/css">
5*10465441SEvalZero<link href="tabs.css" rel="stylesheet" type="text/css">
6*10465441SEvalZero</head><body>
7*10465441SEvalZero<!-- Generated by Doxygen 1.4.6 -->
8*10465441SEvalZero<div class="tabs">
9*10465441SEvalZero  <ul>
10*10465441SEvalZero    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11*10465441SEvalZero    <li><a href="modules.html"><span>Modules</span></a></li>
12*10465441SEvalZero    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
13*10465441SEvalZero    <li><a href="files.html"><span>Files</span></a></li>
14*10465441SEvalZero    <li><a href="examples.html"><span>Examples</span></a></li>
15*10465441SEvalZero  </ul></div>
16*10465441SEvalZero<h1>uIP conversion functions<br>
17*10465441SEvalZero<small>
18*10465441SEvalZero[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
19*10465441SEvalZero</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
20*10465441SEvalZeroThese functions can be used for converting between different data formats used by uIP.
21*10465441SEvalZero<p>
22*10465441SEvalZero
23*10465441SEvalZero<p>
24*10465441SEvalZero<table border="0" cellpadding="0" cellspacing="0">
25*10465441SEvalZero<tr><td></td></tr>
26*10465441SEvalZero<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
27*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(addr, addr0, addr1, addr2, addr3)</td></tr>
28*10465441SEvalZero
29*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an IP address from four bytes.  <a href="#g87f0b54ade0d159fba495089128a4932"></a><br></td></tr>
30*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g53fbda0e8c31d4882294c8dc3cb5f487">uip_ip6addr</a>(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7)</td></tr>
31*10465441SEvalZero
32*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an IPv6 address from eight 16-bit words.  <a href="#g53fbda0e8c31d4882294c8dc3cb5f487"></a><br></td></tr>
33*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g769512993b7b27271909d6daa4748b60">uip_ipaddr_copy</a>(dest, src)</td></tr>
34*10465441SEvalZero
35*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy an IP address to another IP address.  <a href="#g769512993b7b27271909d6daa4748b60"></a><br></td></tr>
36*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g210e629f7252e4bc8458cbdf260b3318">uip_ipaddr_cmp</a>(addr1, addr2)</td></tr>
37*10465441SEvalZero
38*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two IP addresses.  <a href="#g210e629f7252e4bc8458cbdf260b3318"></a><br></td></tr>
39*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g6b16e0bac41821c1fbe0c267071642f0">uip_ipaddr_maskcmp</a>(addr1, addr2, mask)</td></tr>
40*10465441SEvalZero
41*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two IP addresses with netmasks.  <a href="#g6b16e0bac41821c1fbe0c267071642f0"></a><br></td></tr>
42*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g969d7fff37a979737da045e0d538a9bd">uip_ipaddr_mask</a>(dest, src, mask)</td></tr>
43*10465441SEvalZero
44*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mask out the network part of an IP address.  <a href="#g969d7fff37a979737da045e0d538a9bd"></a><br></td></tr>
45*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g22fa0681cd463191d7a01fe85d86996f">uip_ipaddr1</a>(addr)</td></tr>
46*10465441SEvalZero
47*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the first octet of an IP address.  <a href="#g22fa0681cd463191d7a01fe85d86996f"></a><br></td></tr>
48*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#gffcd2fbe181e2aaefbf970551c302af5">uip_ipaddr2</a>(addr)</td></tr>
49*10465441SEvalZero
50*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the second octet of an IP address.  <a href="#gffcd2fbe181e2aaefbf970551c302af5"></a><br></td></tr>
51*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ge23534479ead15af8ff08ace26a47fb5">uip_ipaddr3</a>(addr)</td></tr>
52*10465441SEvalZero
53*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the third octet of an IP address.  <a href="#ge23534479ead15af8ff08ace26a47fb5"></a><br></td></tr>
54*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g165b603ec150e26efec7be199c9c2901">uip_ipaddr4</a>(addr)</td></tr>
55*10465441SEvalZero
56*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pick the fourth octet of an IP address.  <a href="#g165b603ec150e26efec7be199c9c2901"></a><br></td></tr>
57*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(n)</td></tr>
58*10465441SEvalZero
59*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 16-bit quantity from host byte order to network byte order.  <a href="#g69a7a4951ff21b302267532c21ee78fc"></a><br></td></tr>
60*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g118e9d76568ab81ad97f138d4ea1ddd2"></a><!-- doxytag: member="uipconvfunc::ntohs" ref="g118e9d76568ab81ad97f138d4ea1ddd2" args="" -->
61*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#g118e9d76568ab81ad97f138d4ea1ddd2">ntohs</a>&nbsp;&nbsp;&nbsp;htons</td></tr>
62*10465441SEvalZero
63*10465441SEvalZero<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
64*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons</a> (<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> val)</td></tr>
65*10465441SEvalZero
66*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert 16-bit quantity from host byte order to network byte order.  <a href="#ga22b04cac8cf283ca12f028578bebc06"></a><br></td></tr>
67*10465441SEvalZero</table>
68*10465441SEvalZero<hr><h2>Define Documentation</h2>
69*10465441SEvalZero<a class="anchor" name="g69a7a4951ff21b302267532c21ee78fc"></a><!-- doxytag: member="uip.h::HTONS" ref="g69a7a4951ff21b302267532c21ee78fc" args="(n)" --><p>
70*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
71*10465441SEvalZero  <tr>
72*10465441SEvalZero    <td class="mdRow">
73*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
74*10465441SEvalZero        <tr>
75*10465441SEvalZero          <td class="md" nowrap valign="top">#define HTONS          </td>
76*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
77*10465441SEvalZero          <td class="md" nowrap valign="top">n&nbsp;</td>
78*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
79*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
80*10465441SEvalZero          <td class="md" nowrap></td>
81*10465441SEvalZero        </tr>
82*10465441SEvalZero      </table>
83*10465441SEvalZero    </td>
84*10465441SEvalZero  </tr>
85*10465441SEvalZero</table>
86*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
87*10465441SEvalZero  <tr>
88*10465441SEvalZero    <td>
89*10465441SEvalZero      &nbsp;
90*10465441SEvalZero    </td>
91*10465441SEvalZero    <td>
92*10465441SEvalZero
93*10465441SEvalZero<p>
94*10465441SEvalZeroConvert 16-bit quantity from host byte order to network byte order.
95*10465441SEvalZero<p>
96*10465441SEvalZeroThis macro is primarily used for converting constants from host byte order to network byte order. For converting variables to network byte order, use the <a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons()</a> function instead. <dl compact><dt><b>Examples: </b></dt><dd>
97*10465441SEvalZero<a class="el" href="a00048.html#a6">dhcpc.c</a>, <a class="el" href="a00036.html#a103">hello-world.c</a>, <a class="el" href="a00046.html#a139">resolv.c</a>, <a class="el" href="a00038.html#a191">smtp.c</a>, and <a class="el" href="a00044.html#a219">telnetd.c</a>.</dl>
98*10465441SEvalZero<p>
99*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l01070">1070</a> of file <a class="el" href="a00202.html">uip.h</a>.
100*10465441SEvalZero<p>
101*10465441SEvalZeroReferenced by <a class="el" href="a00170.html#l00041">hello_world_init()</a>, <a class="el" href="a00201.html#l01882">htons()</a>, <a class="el" href="a00184.html#l00333">httpd_init()</a>, <a class="el" href="a00172.html#l00331">resolv_appcall()</a>, <a class="el" href="a00172.html#l00438">resolv_conf()</a>, <a class="el" href="a00174.html#l00233">smtp_send()</a>, <a class="el" href="a00204.html#l00278">uip_arp_arpin()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>.    </td>
102*10465441SEvalZero  </tr>
103*10465441SEvalZero</table>
104*10465441SEvalZero<a class="anchor" name="g53fbda0e8c31d4882294c8dc3cb5f487"></a><!-- doxytag: member="uip.h::uip_ip6addr" ref="g53fbda0e8c31d4882294c8dc3cb5f487" args="(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7)" --><p>
105*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
106*10465441SEvalZero  <tr>
107*10465441SEvalZero    <td class="mdRow">
108*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
109*10465441SEvalZero        <tr>
110*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ip6addr          </td>
111*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
112*10465441SEvalZero          <td class="md" nowrap valign="top">addr,         <tr>
113*10465441SEvalZero          <td class="md" nowrap align="right"></td>
114*10465441SEvalZero          <td class="md"></td>
115*10465441SEvalZero          <td class="md" nowrap>addr0,         <tr>
116*10465441SEvalZero          <td class="md" nowrap align="right"></td>
117*10465441SEvalZero          <td class="md"></td>
118*10465441SEvalZero          <td class="md" nowrap>addr1,         <tr>
119*10465441SEvalZero          <td class="md" nowrap align="right"></td>
120*10465441SEvalZero          <td class="md"></td>
121*10465441SEvalZero          <td class="md" nowrap>addr2,         <tr>
122*10465441SEvalZero          <td class="md" nowrap align="right"></td>
123*10465441SEvalZero          <td class="md"></td>
124*10465441SEvalZero          <td class="md" nowrap>addr3,         <tr>
125*10465441SEvalZero          <td class="md" nowrap align="right"></td>
126*10465441SEvalZero          <td class="md"></td>
127*10465441SEvalZero          <td class="md" nowrap>addr4,         <tr>
128*10465441SEvalZero          <td class="md" nowrap align="right"></td>
129*10465441SEvalZero          <td class="md"></td>
130*10465441SEvalZero          <td class="md" nowrap>addr5,         <tr>
131*10465441SEvalZero          <td class="md" nowrap align="right"></td>
132*10465441SEvalZero          <td class="md"></td>
133*10465441SEvalZero          <td class="md" nowrap>addr6,         <tr>
134*10465441SEvalZero          <td class="md" nowrap align="right"></td>
135*10465441SEvalZero          <td class="md"></td>
136*10465441SEvalZero          <td class="md" nowrap>addr7&nbsp;</td>
137*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
138*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
139*10465441SEvalZero          <td class="md" nowrap></td>
140*10465441SEvalZero        </tr>
141*10465441SEvalZero      </table>
142*10465441SEvalZero    </td>
143*10465441SEvalZero  </tr>
144*10465441SEvalZero</table>
145*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
146*10465441SEvalZero  <tr>
147*10465441SEvalZero    <td>
148*10465441SEvalZero      &nbsp;
149*10465441SEvalZero    </td>
150*10465441SEvalZero    <td>
151*10465441SEvalZero
152*10465441SEvalZero<p>
153*10465441SEvalZeroConstruct an IPv6 address from eight 16-bit words.
154*10465441SEvalZero<p>
155*10465441SEvalZeroThis function constructs an IPv6 address.
156*10465441SEvalZero<p>
157*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00852">852</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
158*10465441SEvalZero  </tr>
159*10465441SEvalZero</table>
160*10465441SEvalZero<a class="anchor" name="g87f0b54ade0d159fba495089128a4932"></a><!-- doxytag: member="uip.h::uip_ipaddr" ref="g87f0b54ade0d159fba495089128a4932" args="(addr, addr0, addr1, addr2, addr3)" --><p>
161*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
162*10465441SEvalZero  <tr>
163*10465441SEvalZero    <td class="mdRow">
164*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
165*10465441SEvalZero        <tr>
166*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr          </td>
167*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
168*10465441SEvalZero          <td class="md" nowrap valign="top">addr,         <tr>
169*10465441SEvalZero          <td class="md" nowrap align="right"></td>
170*10465441SEvalZero          <td class="md"></td>
171*10465441SEvalZero          <td class="md" nowrap>addr0,         <tr>
172*10465441SEvalZero          <td class="md" nowrap align="right"></td>
173*10465441SEvalZero          <td class="md"></td>
174*10465441SEvalZero          <td class="md" nowrap>addr1,         <tr>
175*10465441SEvalZero          <td class="md" nowrap align="right"></td>
176*10465441SEvalZero          <td class="md"></td>
177*10465441SEvalZero          <td class="md" nowrap>addr2,         <tr>
178*10465441SEvalZero          <td class="md" nowrap align="right"></td>
179*10465441SEvalZero          <td class="md"></td>
180*10465441SEvalZero          <td class="md" nowrap>addr3&nbsp;</td>
181*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
182*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
183*10465441SEvalZero          <td class="md" nowrap></td>
184*10465441SEvalZero        </tr>
185*10465441SEvalZero      </table>
186*10465441SEvalZero    </td>
187*10465441SEvalZero  </tr>
188*10465441SEvalZero</table>
189*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
190*10465441SEvalZero  <tr>
191*10465441SEvalZero    <td>
192*10465441SEvalZero      &nbsp;
193*10465441SEvalZero    </td>
194*10465441SEvalZero    <td>
195*10465441SEvalZero
196*10465441SEvalZero<p>
197*10465441SEvalZeroConstruct an IP address from four bytes.
198*10465441SEvalZero<p>
199*10465441SEvalZeroThis function constructs an IP address of the type that uIP handles internally from four bytes. The function is handy for specifying IP addresses to use with e.g. the <a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect()</a> function.<p>
200*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
201*10465441SEvalZero <span class="keyword">struct </span><a class="code" href="a00088.html">uip_conn</a> *c;
202*10465441SEvalZero
203*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 192,168,1,2);
204*10465441SEvalZero c = <a class="code" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect</a>(&amp;ipaddr, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(80));
205*10465441SEvalZero</pre></div><p>
206*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
207*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
208*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>A pointer to a uip_ipaddr_t variable that will be filled in with the IP address.</td></tr>
209*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr0</em>&nbsp;</td><td>The first octet of the IP address. </td></tr>
210*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The second octet of the IP address. </td></tr>
211*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The third octet of the IP address. </td></tr>
212*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr3</em>&nbsp;</td><td>The forth octet of the IP address. </td></tr>
213*10465441SEvalZero  </table>
214*10465441SEvalZero</dl>
215*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
216*10465441SEvalZero<a class="el" href="a00048.html#a36">dhcpc.c</a>, <a class="el" href="a00042.html#a65">example-mainloop-with-arp.c</a>, and <a class="el" href="a00043.html#a89">example-mainloop-without-arp.c</a>.</dl>
217*10465441SEvalZero<p>
218*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00840">840</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
219*10465441SEvalZero  </tr>
220*10465441SEvalZero</table>
221*10465441SEvalZero<a class="anchor" name="g22fa0681cd463191d7a01fe85d86996f"></a><!-- doxytag: member="uip.h::uip_ipaddr1" ref="g22fa0681cd463191d7a01fe85d86996f" args="(addr)" --><p>
222*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
223*10465441SEvalZero  <tr>
224*10465441SEvalZero    <td class="mdRow">
225*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
226*10465441SEvalZero        <tr>
227*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr1          </td>
228*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
229*10465441SEvalZero          <td class="md" nowrap valign="top">addr&nbsp;</td>
230*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
231*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
232*10465441SEvalZero          <td class="md" nowrap></td>
233*10465441SEvalZero        </tr>
234*10465441SEvalZero      </table>
235*10465441SEvalZero    </td>
236*10465441SEvalZero  </tr>
237*10465441SEvalZero</table>
238*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
239*10465441SEvalZero  <tr>
240*10465441SEvalZero    <td>
241*10465441SEvalZero      &nbsp;
242*10465441SEvalZero    </td>
243*10465441SEvalZero    <td>
244*10465441SEvalZero
245*10465441SEvalZero<p>
246*10465441SEvalZeroPick the first octet of an IP address.
247*10465441SEvalZero<p>
248*10465441SEvalZeroPicks out the first octet of an IP address.<p>
249*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
250*10465441SEvalZero <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
251*10465441SEvalZero
252*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
253*10465441SEvalZero octet = <a class="code" href="a00148.html#g22fa0681cd463191d7a01fe85d86996f">uip_ipaddr1</a>(&amp;ipaddr);
254*10465441SEvalZero</pre></div><p>
255*10465441SEvalZeroIn the example above, the variable "octet" will contain the value 1. <dl compact><dt><b>Examples: </b></dt><dd>
256*10465441SEvalZero<a class="el" href="a00048.html#a28">dhcpc.c</a>.</dl>
257*10465441SEvalZero<p>
258*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00995">995</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
259*10465441SEvalZero  </tr>
260*10465441SEvalZero</table>
261*10465441SEvalZero<a class="anchor" name="gffcd2fbe181e2aaefbf970551c302af5"></a><!-- doxytag: member="uip.h::uip_ipaddr2" ref="gffcd2fbe181e2aaefbf970551c302af5" args="(addr)" --><p>
262*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
263*10465441SEvalZero  <tr>
264*10465441SEvalZero    <td class="mdRow">
265*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
266*10465441SEvalZero        <tr>
267*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr2          </td>
268*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
269*10465441SEvalZero          <td class="md" nowrap valign="top">addr&nbsp;</td>
270*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
271*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
272*10465441SEvalZero          <td class="md" nowrap></td>
273*10465441SEvalZero        </tr>
274*10465441SEvalZero      </table>
275*10465441SEvalZero    </td>
276*10465441SEvalZero  </tr>
277*10465441SEvalZero</table>
278*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
279*10465441SEvalZero  <tr>
280*10465441SEvalZero    <td>
281*10465441SEvalZero      &nbsp;
282*10465441SEvalZero    </td>
283*10465441SEvalZero    <td>
284*10465441SEvalZero
285*10465441SEvalZero<p>
286*10465441SEvalZeroPick the second octet of an IP address.
287*10465441SEvalZero<p>
288*10465441SEvalZeroPicks out the second octet of an IP address.<p>
289*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
290*10465441SEvalZero <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
291*10465441SEvalZero
292*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
293*10465441SEvalZero octet = <a class="code" href="a00148.html#gffcd2fbe181e2aaefbf970551c302af5">uip_ipaddr2</a>(&amp;ipaddr);
294*10465441SEvalZero</pre></div><p>
295*10465441SEvalZeroIn the example above, the variable "octet" will contain the value 2. <dl compact><dt><b>Examples: </b></dt><dd>
296*10465441SEvalZero<a class="el" href="a00048.html#a29">dhcpc.c</a>.</dl>
297*10465441SEvalZero<p>
298*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l01015">1015</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
299*10465441SEvalZero  </tr>
300*10465441SEvalZero</table>
301*10465441SEvalZero<a class="anchor" name="ge23534479ead15af8ff08ace26a47fb5"></a><!-- doxytag: member="uip.h::uip_ipaddr3" ref="ge23534479ead15af8ff08ace26a47fb5" args="(addr)" --><p>
302*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
303*10465441SEvalZero  <tr>
304*10465441SEvalZero    <td class="mdRow">
305*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
306*10465441SEvalZero        <tr>
307*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr3          </td>
308*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
309*10465441SEvalZero          <td class="md" nowrap valign="top">addr&nbsp;</td>
310*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
311*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
312*10465441SEvalZero          <td class="md" nowrap></td>
313*10465441SEvalZero        </tr>
314*10465441SEvalZero      </table>
315*10465441SEvalZero    </td>
316*10465441SEvalZero  </tr>
317*10465441SEvalZero</table>
318*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
319*10465441SEvalZero  <tr>
320*10465441SEvalZero    <td>
321*10465441SEvalZero      &nbsp;
322*10465441SEvalZero    </td>
323*10465441SEvalZero    <td>
324*10465441SEvalZero
325*10465441SEvalZero<p>
326*10465441SEvalZeroPick the third octet of an IP address.
327*10465441SEvalZero<p>
328*10465441SEvalZeroPicks out the third octet of an IP address.<p>
329*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
330*10465441SEvalZero <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
331*10465441SEvalZero
332*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
333*10465441SEvalZero octet = <a class="code" href="a00148.html#ge23534479ead15af8ff08ace26a47fb5">uip_ipaddr3</a>(&amp;ipaddr);
334*10465441SEvalZero</pre></div><p>
335*10465441SEvalZeroIn the example above, the variable "octet" will contain the value 3. <dl compact><dt><b>Examples: </b></dt><dd>
336*10465441SEvalZero<a class="el" href="a00048.html#a30">dhcpc.c</a>.</dl>
337*10465441SEvalZero<p>
338*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l01035">1035</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
339*10465441SEvalZero  </tr>
340*10465441SEvalZero</table>
341*10465441SEvalZero<a class="anchor" name="g165b603ec150e26efec7be199c9c2901"></a><!-- doxytag: member="uip.h::uip_ipaddr4" ref="g165b603ec150e26efec7be199c9c2901" args="(addr)" --><p>
342*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
343*10465441SEvalZero  <tr>
344*10465441SEvalZero    <td class="mdRow">
345*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
346*10465441SEvalZero        <tr>
347*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr4          </td>
348*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
349*10465441SEvalZero          <td class="md" nowrap valign="top">addr&nbsp;</td>
350*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
351*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
352*10465441SEvalZero          <td class="md" nowrap></td>
353*10465441SEvalZero        </tr>
354*10465441SEvalZero      </table>
355*10465441SEvalZero    </td>
356*10465441SEvalZero  </tr>
357*10465441SEvalZero</table>
358*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
359*10465441SEvalZero  <tr>
360*10465441SEvalZero    <td>
361*10465441SEvalZero      &nbsp;
362*10465441SEvalZero    </td>
363*10465441SEvalZero    <td>
364*10465441SEvalZero
365*10465441SEvalZero<p>
366*10465441SEvalZeroPick the fourth octet of an IP address.
367*10465441SEvalZero<p>
368*10465441SEvalZeroPicks out the fourth octet of an IP address.<p>
369*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
370*10465441SEvalZero <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> octet;
371*10465441SEvalZero
372*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr, 1,2,3,4);
373*10465441SEvalZero octet = <a class="code" href="a00148.html#g165b603ec150e26efec7be199c9c2901">uip_ipaddr4</a>(&amp;ipaddr);
374*10465441SEvalZero</pre></div><p>
375*10465441SEvalZeroIn the example above, the variable "octet" will contain the value 4. <dl compact><dt><b>Examples: </b></dt><dd>
376*10465441SEvalZero<a class="el" href="a00048.html#a31">dhcpc.c</a>.</dl>
377*10465441SEvalZero<p>
378*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l01055">1055</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
379*10465441SEvalZero  </tr>
380*10465441SEvalZero</table>
381*10465441SEvalZero<a class="anchor" name="g210e629f7252e4bc8458cbdf260b3318"></a><!-- doxytag: member="uip.h::uip_ipaddr_cmp" ref="g210e629f7252e4bc8458cbdf260b3318" args="(addr1, addr2)" --><p>
382*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
383*10465441SEvalZero  <tr>
384*10465441SEvalZero    <td class="mdRow">
385*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
386*10465441SEvalZero        <tr>
387*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr_cmp          </td>
388*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
389*10465441SEvalZero          <td class="md" nowrap valign="top">addr1,         <tr>
390*10465441SEvalZero          <td class="md" nowrap align="right"></td>
391*10465441SEvalZero          <td class="md"></td>
392*10465441SEvalZero          <td class="md" nowrap>addr2&nbsp;</td>
393*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
394*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
395*10465441SEvalZero          <td class="md" nowrap></td>
396*10465441SEvalZero        </tr>
397*10465441SEvalZero      </table>
398*10465441SEvalZero    </td>
399*10465441SEvalZero  </tr>
400*10465441SEvalZero</table>
401*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
402*10465441SEvalZero  <tr>
403*10465441SEvalZero    <td>
404*10465441SEvalZero      &nbsp;
405*10465441SEvalZero    </td>
406*10465441SEvalZero    <td>
407*10465441SEvalZero
408*10465441SEvalZero<p>
409*10465441SEvalZeroCompare two IP addresses.
410*10465441SEvalZero<p>
411*10465441SEvalZeroCompares two IP addresses.<p>
412*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2;
413*10465441SEvalZero
414*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
415*10465441SEvalZero <span class="keywordflow">if</span>(<a class="code" href="a00148.html#g210e629f7252e4bc8458cbdf260b3318">uip_ipaddr_cmp</a>(&amp;ipaddr2, &amp;ipaddr1)) {
416*10465441SEvalZero    printf(<span class="stringliteral">"They are the same"</span>);
417*10465441SEvalZero }
418*10465441SEvalZero</pre></div><p>
419*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
420*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
421*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The first IP address. </td></tr>
422*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The second IP address. </td></tr>
423*10465441SEvalZero  </table>
424*10465441SEvalZero</dl>
425*10465441SEvalZero
426*10465441SEvalZero<p>
427*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00911">911</a> of file <a class="el" href="a00202.html">uip.h</a>.
428*10465441SEvalZero<p>
429*10465441SEvalZeroReferenced by <a class="el" href="a00204.html#l00278">uip_arp_arpin()</a>, <a class="el" href="a00204.html#l00354">uip_arp_out()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>.    </td>
430*10465441SEvalZero  </tr>
431*10465441SEvalZero</table>
432*10465441SEvalZero<a class="anchor" name="g769512993b7b27271909d6daa4748b60"></a><!-- doxytag: member="uip.h::uip_ipaddr_copy" ref="g769512993b7b27271909d6daa4748b60" args="(dest, src)" --><p>
433*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
434*10465441SEvalZero  <tr>
435*10465441SEvalZero    <td class="mdRow">
436*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
437*10465441SEvalZero        <tr>
438*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr_copy          </td>
439*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
440*10465441SEvalZero          <td class="md" nowrap valign="top">dest,         <tr>
441*10465441SEvalZero          <td class="md" nowrap align="right"></td>
442*10465441SEvalZero          <td class="md"></td>
443*10465441SEvalZero          <td class="md" nowrap>src&nbsp;</td>
444*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
445*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
446*10465441SEvalZero          <td class="md" nowrap></td>
447*10465441SEvalZero        </tr>
448*10465441SEvalZero      </table>
449*10465441SEvalZero    </td>
450*10465441SEvalZero  </tr>
451*10465441SEvalZero</table>
452*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
453*10465441SEvalZero  <tr>
454*10465441SEvalZero    <td>
455*10465441SEvalZero      &nbsp;
456*10465441SEvalZero    </td>
457*10465441SEvalZero    <td>
458*10465441SEvalZero
459*10465441SEvalZero<p>
460*10465441SEvalZeroCopy an IP address to another IP address.
461*10465441SEvalZero<p>
462*10465441SEvalZeroCopies an IP address from one place to another.<p>
463*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2;
464*10465441SEvalZero
465*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
466*10465441SEvalZero <a class="code" href="a00148.html#g769512993b7b27271909d6daa4748b60">uip_ipaddr_copy</a>(&amp;ipaddr2, &amp;ipaddr1);
467*10465441SEvalZero</pre></div><p>
468*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
469*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
470*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>The destination for the copy. </td></tr>
471*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The source from where to copy. </td></tr>
472*10465441SEvalZero  </table>
473*10465441SEvalZero</dl>
474*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
475*10465441SEvalZero<a class="el" href="a00038.html#a187">smtp.c</a>.</dl>
476*10465441SEvalZero<p>
477*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00882">882</a> of file <a class="el" href="a00202.html">uip.h</a>.
478*10465441SEvalZero<p>
479*10465441SEvalZeroReferenced by <a class="el" href="a00174.html#l00216">smtp_configure()</a>, <a class="el" href="a00204.html#l00354">uip_arp_out()</a>, and <a class="el" href="a00201.html#l00682">uip_process()</a>.    </td>
480*10465441SEvalZero  </tr>
481*10465441SEvalZero</table>
482*10465441SEvalZero<a class="anchor" name="g969d7fff37a979737da045e0d538a9bd"></a><!-- doxytag: member="uip.h::uip_ipaddr_mask" ref="g969d7fff37a979737da045e0d538a9bd" args="(dest, src, mask)" --><p>
483*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
484*10465441SEvalZero  <tr>
485*10465441SEvalZero    <td class="mdRow">
486*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
487*10465441SEvalZero        <tr>
488*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr_mask          </td>
489*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
490*10465441SEvalZero          <td class="md" nowrap valign="top">dest,         <tr>
491*10465441SEvalZero          <td class="md" nowrap align="right"></td>
492*10465441SEvalZero          <td class="md"></td>
493*10465441SEvalZero          <td class="md" nowrap>src,         <tr>
494*10465441SEvalZero          <td class="md" nowrap align="right"></td>
495*10465441SEvalZero          <td class="md"></td>
496*10465441SEvalZero          <td class="md" nowrap>mask&nbsp;</td>
497*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
498*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
499*10465441SEvalZero          <td class="md" nowrap></td>
500*10465441SEvalZero        </tr>
501*10465441SEvalZero      </table>
502*10465441SEvalZero    </td>
503*10465441SEvalZero  </tr>
504*10465441SEvalZero</table>
505*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
506*10465441SEvalZero  <tr>
507*10465441SEvalZero    <td>
508*10465441SEvalZero      &nbsp;
509*10465441SEvalZero    </td>
510*10465441SEvalZero    <td>
511*10465441SEvalZero
512*10465441SEvalZero<p>
513*10465441SEvalZeroMask out the network part of an IP address.
514*10465441SEvalZero<p>
515*10465441SEvalZeroMasks out the network part of an IP address, given the address and the netmask.<p>
516*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2, netmask;
517*10465441SEvalZero
518*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
519*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;netmask, 255,255,255,0);
520*10465441SEvalZero <a class="code" href="a00148.html#g969d7fff37a979737da045e0d538a9bd">uip_ipaddr_mask</a>(&amp;ipaddr2, &amp;ipaddr1, &amp;netmask);
521*10465441SEvalZero</pre></div><p>
522*10465441SEvalZeroIn the example above, the variable "ipaddr2" will contain the IP address 192.168.1.0.<p>
523*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
524*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
525*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Where the result is to be placed. </td></tr>
526*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The IP address. </td></tr>
527*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>The netmask. </td></tr>
528*10465441SEvalZero  </table>
529*10465441SEvalZero</dl>
530*10465441SEvalZero
531*10465441SEvalZero<p>
532*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00972">972</a> of file <a class="el" href="a00202.html">uip.h</a>.    </td>
533*10465441SEvalZero  </tr>
534*10465441SEvalZero</table>
535*10465441SEvalZero<a class="anchor" name="g6b16e0bac41821c1fbe0c267071642f0"></a><!-- doxytag: member="uip.h::uip_ipaddr_maskcmp" ref="g6b16e0bac41821c1fbe0c267071642f0" args="(addr1, addr2, mask)" --><p>
536*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
537*10465441SEvalZero  <tr>
538*10465441SEvalZero    <td class="mdRow">
539*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
540*10465441SEvalZero        <tr>
541*10465441SEvalZero          <td class="md" nowrap valign="top">#define uip_ipaddr_maskcmp          </td>
542*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
543*10465441SEvalZero          <td class="md" nowrap valign="top">addr1,         <tr>
544*10465441SEvalZero          <td class="md" nowrap align="right"></td>
545*10465441SEvalZero          <td class="md"></td>
546*10465441SEvalZero          <td class="md" nowrap>addr2,         <tr>
547*10465441SEvalZero          <td class="md" nowrap align="right"></td>
548*10465441SEvalZero          <td class="md"></td>
549*10465441SEvalZero          <td class="md" nowrap>mask&nbsp;</td>
550*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
551*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
552*10465441SEvalZero          <td class="md" nowrap></td>
553*10465441SEvalZero        </tr>
554*10465441SEvalZero      </table>
555*10465441SEvalZero    </td>
556*10465441SEvalZero  </tr>
557*10465441SEvalZero</table>
558*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
559*10465441SEvalZero  <tr>
560*10465441SEvalZero    <td>
561*10465441SEvalZero      &nbsp;
562*10465441SEvalZero    </td>
563*10465441SEvalZero    <td>
564*10465441SEvalZero
565*10465441SEvalZero<p>
566*10465441SEvalZeroCompare two IP addresses with netmasks.
567*10465441SEvalZero<p>
568*10465441SEvalZeroCompares two IP addresses with netmasks. The masks are used to mask out the bits that are to be compared.<p>
569*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr1, ipaddr2, mask;
570*10465441SEvalZero
571*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;mask, 255,255,255,0);
572*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr1, 192,16,1,2);
573*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&amp;ipaddr2, 192,16,1,3);
574*10465441SEvalZero <span class="keywordflow">if</span>(<a class="code" href="a00148.html#g6b16e0bac41821c1fbe0c267071642f0">uip_ipaddr_maskcmp</a>(&amp;ipaddr1, &amp;ipaddr2, &amp;mask)) {
575*10465441SEvalZero    printf(<span class="stringliteral">"They are the same"</span>);
576*10465441SEvalZero }
577*10465441SEvalZero</pre></div><p>
578*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
579*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
580*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>The first IP address. </td></tr>
581*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The second IP address. </td></tr>
582*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>The netmask. </td></tr>
583*10465441SEvalZero  </table>
584*10465441SEvalZero</dl>
585*10465441SEvalZero
586*10465441SEvalZero<p>
587*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00941">941</a> of file <a class="el" href="a00202.html">uip.h</a>.
588*10465441SEvalZero<p>
589*10465441SEvalZeroReferenced by <a class="el" href="a00204.html#l00354">uip_arp_out()</a>.    </td>
590*10465441SEvalZero  </tr>
591*10465441SEvalZero</table>
592*10465441SEvalZero<hr><h2>Function Documentation</h2>
593*10465441SEvalZero<a class="anchor" name="ga22b04cac8cf283ca12f028578bebc06"></a><!-- doxytag: member="uip.h::htons" ref="ga22b04cac8cf283ca12f028578bebc06" args="(u16_t val)" --><p>
594*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
595*10465441SEvalZero  <tr>
596*10465441SEvalZero    <td class="mdRow">
597*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
598*10465441SEvalZero        <tr>
599*10465441SEvalZero          <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> htons           </td>
600*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
601*10465441SEvalZero          <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td>
602*10465441SEvalZero          <td class="mdname1" valign="top" nowrap> <em>val</em>          </td>
603*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
604*10465441SEvalZero          <td class="md" nowrap></td>
605*10465441SEvalZero        </tr>
606*10465441SEvalZero      </table>
607*10465441SEvalZero    </td>
608*10465441SEvalZero  </tr>
609*10465441SEvalZero</table>
610*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
611*10465441SEvalZero  <tr>
612*10465441SEvalZero    <td>
613*10465441SEvalZero      &nbsp;
614*10465441SEvalZero    </td>
615*10465441SEvalZero    <td>
616*10465441SEvalZero
617*10465441SEvalZero<p>
618*10465441SEvalZeroConvert 16-bit quantity from host byte order to network byte order.
619*10465441SEvalZero<p>
620*10465441SEvalZeroThis function is primarily used for converting variables from host byte order to network byte order. For converting constants to network byte order, use the <a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS()</a> macro instead. <dl compact><dt><b>Examples: </b></dt><dd>
621*10465441SEvalZero<a class="el" href="a00042.html#a70">example-mainloop-with-arp.c</a>, <a class="el" href="a00046.html#a137">resolv.c</a>, and <a class="el" href="a00040.html#a274">webclient.c</a>.</dl>
622*10465441SEvalZero<p>
623*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l01882">1882</a> of file <a class="el" href="a00201.html">uip.c</a>.
624*10465441SEvalZero<p>
625*10465441SEvalZeroReferences <a class="el" href="a00202.html#l01070">HTONS</a>.
626*10465441SEvalZero<p>
627*10465441SEvalZeroReferenced by <a class="el" href="a00201.html#l00311">uip_chksum()</a>, <a class="el" href="a00201.html#l00407">uip_connect()</a>, <a class="el" href="a00201.html#l00318">uip_ipchksum()</a>, <a class="el" href="a00201.html#l00473">uip_udp_new()</a>, and <a class="el" href="a00180.html#l00140">webclient_get()</a>.    </td>
628*10465441SEvalZero  </tr>
629*10465441SEvalZero</table>
630*10465441SEvalZero<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
631*10465441SEvalZero<a href="http://www.doxygen.org/index.html">
632*10465441SEvalZero<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
633*10465441SEvalZero</body>
634*10465441SEvalZero</html>
635