678 lines
36 KiB
HTML
678 lines
36 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.20"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>lwIP: IP address handling</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">lwIP
|
|
 <span id="projectnumber">2.2.1</span>
|
|
</div>
|
|
<div id="projectbrief">Lightweight IP stack</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.20 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('group__ipaddr.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#groups">Modules</a> |
|
|
<a href="#nested-classes">Data Structures</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#typedef-members">Typedefs</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">IP address handling<div class="ingroups"><a class="el" href="group__infrastructure.html">Infrastructure</a></div></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
|
|
Modules</h2></td></tr>
|
|
<tr class="memitem:group__ip4addr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html">IPv4 only</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:group__ip6addr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html">IPv6 only</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structip__addr.html">ip_addr</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:ga3a2123f0bbf6fe843c8542e349c680eb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga3a2123f0bbf6fe843c8542e349c680eb">ip_addr_netcmp</a>(addr1, addr2, mask)   <a class="el" href="group__ipaddr.html#gad1bbbe4c93ea2368663e90814953b929">ip_addr_net_eq</a>((addr1), (addr2), (mask))</td></tr>
|
|
<tr class="separator:ga3a2123f0bbf6fe843c8542e349c680eb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gad1bbbe4c93ea2368663e90814953b929"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gad1bbbe4c93ea2368663e90814953b929">ip_addr_net_eq</a>(addr1, addr2, mask)</td></tr>
|
|
<tr class="separator:gad1bbbe4c93ea2368663e90814953b929"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga008c9c92d770cc030ea054e6b259835a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga008c9c92d770cc030ea054e6b259835a">ip_addr_cmp</a>(addr1, addr2)   <a class="el" href="group__ipaddr.html#ga5b40158bdffa4b0c81c4ee77066e6b28">ip_addr_eq</a>((addr1), (addr2))</td></tr>
|
|
<tr class="separator:ga008c9c92d770cc030ea054e6b259835a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5b40158bdffa4b0c81c4ee77066e6b28"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga5b40158bdffa4b0c81c4ee77066e6b28">ip_addr_eq</a>(addr1, addr2)</td></tr>
|
|
<tr class="separator:ga5b40158bdffa4b0c81c4ee77066e6b28"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gadb66f6d5fa926ed4b0e69db58dffcbe4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gadb66f6d5fa926ed4b0e69db58dffcbe4">ip_addr_cmp_zoneless</a>(addr1, addr2)   <a class="el" href="group__ipaddr.html#ga8ac2686417ec2974bb0b3fc6ee0ee1a7">ip_addr_zoneless_eq</a>((addr1), (addr2))</td></tr>
|
|
<tr class="separator:gadb66f6d5fa926ed4b0e69db58dffcbe4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8ac2686417ec2974bb0b3fc6ee0ee1a7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga8ac2686417ec2974bb0b3fc6ee0ee1a7">ip_addr_zoneless_eq</a>(addr1, addr2)</td></tr>
|
|
<tr class="separator:ga8ac2686417ec2974bb0b3fc6ee0ee1a7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga279118890e6a90aa740051fb8b0cc5f4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga279118890e6a90aa740051fb8b0cc5f4">ip_addr_isany</a>(ipaddr)</td></tr>
|
|
<tr class="separator:ga279118890e6a90aa740051fb8b0cc5f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gacd8f5aa151cff966fd28368b85f38c05"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gacd8f5aa151cff966fd28368b85f38c05">ip_addr_isany_val</a>(ipaddr)</td></tr>
|
|
<tr class="separator:gacd8f5aa151cff966fd28368b85f38c05"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa3345706e3aa8b32dd630c195b053e75"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaa3345706e3aa8b32dd630c195b053e75">ip_addr_isbroadcast</a>(ipaddr, <a class="el" href="structnetif.html">netif</a>)</td></tr>
|
|
<tr class="separator:gaa3345706e3aa8b32dd630c195b053e75"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga2170d3ee13dd22722222228e7b1c5752"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga2170d3ee13dd22722222228e7b1c5752">ip_addr_ismulticast</a>(ipaddr)</td></tr>
|
|
<tr class="separator:ga2170d3ee13dd22722222228e7b1c5752"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga0fc8bf6662809274750868683b3a422e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga0fc8bf6662809274750868683b3a422e">ip_addr_isloopback</a>(ipaddr)</td></tr>
|
|
<tr class="separator:ga0fc8bf6662809274750868683b3a422e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga33bc079baaf513a9a7381b9531a1f653"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga33bc079baaf513a9a7381b9531a1f653">ip_addr_islinklocal</a>(ipaddr)</td></tr>
|
|
<tr class="separator:ga33bc079baaf513a9a7381b9531a1f653"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabe43b154533b73585c4e58f568370ede"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gabe43b154533b73585c4e58f568370ede">IP_ANY_TYPE</a>   (&ip_addr_any_type)</td></tr>
|
|
<tr class="separator:gabe43b154533b73585c4e58f568370ede"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:ga335a8c9df66319e88a1a529047ce0a1e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structip__addr.html">ip_addr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a></td></tr>
|
|
<tr class="separator:ga335a8c9df66319e88a1a529047ce0a1e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:gaf2142f0dfdcc938e2db16aa745ed585c"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaf2142f0dfdcc938e2db16aa745ed585c">lwip_ip_addr_type</a> { <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049">IPADDR_TYPE_V4</a> = 0U,
|
|
<a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02">IPADDR_TYPE_V6</a> = 6U,
|
|
<a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cac6b2c99cf920e08efcb55dc40e42944e">IPADDR_TYPE_ANY</a> = 46U
|
|
}</td></tr>
|
|
<tr class="separator:gaf2142f0dfdcc938e2db16aa745ed585c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:gace12d28aef35bb15962e8563aea571b1"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gace12d28aef35bb15962e8563aea571b1">ipaddr_ntoa</a> (const <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr)</td></tr>
|
|
<tr class="separator:gace12d28aef35bb15962e8563aea571b1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga3684dabc0cae597ffb5b51d41f1d886f"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga3684dabc0cae597ffb5b51d41f1d886f">ipaddr_ntoa_r</a> (const <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, char *buf, int buflen)</td></tr>
|
|
<tr class="separator:ga3684dabc0cae597ffb5b51d41f1d886f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga4de70fdd7fd36c5b6eaed8b855d5f151"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga4de70fdd7fd36c5b6eaed8b855d5f151">ipaddr_aton</a> (const char *cp, <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr)</td></tr>
|
|
<tr class="separator:ga4de70fdd7fd36c5b6eaed8b855d5f151"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="ga008c9c92d770cc030ea054e6b259835a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga008c9c92d770cc030ea054e6b259835a">◆ </a></span>ip_addr_cmp</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_cmp</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2 </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td>   <a class="el" href="group__ipaddr.html#ga5b40158bdffa4b0c81c4ee77066e6b28">ip_addr_eq</a>((addr1), (addr2))</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000012">Deprecated:</a></b></dt><dd>Renamed to <a class="el" href="group__ipaddr.html#ga5b40158bdffa4b0c81c4ee77066e6b28">ip_addr_eq</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gadb66f6d5fa926ed4b0e69db58dffcbe4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gadb66f6d5fa926ed4b0e69db58dffcbe4">◆ </a></span>ip_addr_cmp_zoneless</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_cmp_zoneless</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2 </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td>   <a class="el" href="group__ipaddr.html#ga8ac2686417ec2974bb0b3fc6ee0ee1a7">ip_addr_zoneless_eq</a>((addr1), (addr2))</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000013">Deprecated:</a></b></dt><dd>Renamed to <a class="el" href="group__ipaddr.html#ga8ac2686417ec2974bb0b3fc6ee0ee1a7">ip_addr_zoneless_eq</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga5b40158bdffa4b0c81c4ee77066e6b28"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga5b40158bdffa4b0c81c4ee77066e6b28">◆ </a></span>ip_addr_eq</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_eq</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2 </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_GET_TYPE(addr1) != IP_GET_TYPE(addr2)) ? 0 : (IP_IS_V6_VAL(*(addr1)) ? \</div>
|
|
<div class="line"> ip6_addr_eq(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(addr1), <a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(addr2)) : \</div>
|
|
<div class="line"> ip4_addr_eq(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr1), <a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr2))))</div>
|
|
</div><!-- fragment --><p>Check if two ip addresses are equal. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga279118890e6a90aa740051fb8b0cc5f4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga279118890e6a90aa740051fb8b0cc5f4">◆ </a></span>ip_addr_isany</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_isany</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> (((ipaddr) == NULL) ? 1 : ((IP_IS_V6(ipaddr)) ? \</div>
|
|
<div class="line"> ip6_addr_isany(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)) : \</div>
|
|
<div class="line"> ip4_addr_isany(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr))))</div>
|
|
</div><!-- fragment --><p>Check if an ip address is the 'any' address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gacd8f5aa151cff966fd28368b85f38c05"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gacd8f5aa151cff966fd28368b85f38c05">◆ </a></span>ip_addr_isany_val</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_isany_val</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6_VAL(ipaddr)) ? \</div>
|
|
<div class="line"> ip6_addr_isany_val(*<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(&(ipaddr))) : \</div>
|
|
<div class="line"> ip4_addr_isany_val(*<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(&(ipaddr))))</div>
|
|
</div><!-- fragment --><p>Check if an ip address is the 'any' address, by value. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaa3345706e3aa8b32dd630c195b053e75"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa3345706e3aa8b32dd630c195b053e75">◆ </a></span>ip_addr_isbroadcast</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_isbroadcast</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname"><a class="el" href="structnetif.html">netif</a> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6(ipaddr)) ? \</div>
|
|
<div class="line"> 0 : \</div>
|
|
<div class="line"> ip4_addr_isbroadcast(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr), <a class="code" href="structnetif.html">netif</a>))</div>
|
|
</div><!-- fragment --><p>Check if an ip address is a broadcast address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga33bc079baaf513a9a7381b9531a1f653"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga33bc079baaf513a9a7381b9531a1f653">◆ </a></span>ip_addr_islinklocal</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_islinklocal</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6(ipaddr)) ? \</div>
|
|
<div class="line"> ip6_addr_islinklocal(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)) : \</div>
|
|
<div class="line"> ip4_addr_islinklocal(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr)))</div>
|
|
</div><!-- fragment --><p>Check inf an ip address is a link-local address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga0fc8bf6662809274750868683b3a422e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga0fc8bf6662809274750868683b3a422e">◆ </a></span>ip_addr_isloopback</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_isloopback</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6(ipaddr)) ? \</div>
|
|
<div class="line"> ip6_addr_isloopback(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)) : \</div>
|
|
<div class="line"> <a class="code" href="ip4__addr_8h.html#a46dabb4df212d156004fa5afe03e2051">ip4_addr_isloopback</a>(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr)))</div>
|
|
</div><!-- fragment --><p>Check inf an ip address is a loopback address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga2170d3ee13dd22722222228e7b1c5752"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga2170d3ee13dd22722222228e7b1c5752">◆ </a></span>ip_addr_ismulticast</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_ismulticast</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">ipaddr</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6(ipaddr)) ? \</div>
|
|
<div class="line"> ip6_addr_ismulticast(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)) : \</div>
|
|
<div class="line"> ip4_addr_ismulticast(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr)))</div>
|
|
</div><!-- fragment --><p>Check inf an ip address is a multicast address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gad1bbbe4c93ea2368663e90814953b929"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gad1bbbe4c93ea2368663e90814953b929">◆ </a></span>ip_addr_net_eq</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_net_eq</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">mask </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_IS_V6(addr1) && IP_IS_V6(addr2)) ? \</div>
|
|
<div class="line"> 0 : \</div>
|
|
<div class="line"> <a class="code" href="ip4__addr_8h.html#a95d05df9201602fc873a97fb61fd1134">ip4_addr_net_eq</a>(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr1), <a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr2), mask))</div>
|
|
</div><!-- fragment --><p>Check if two ip addresses are share the same network, for a specific netmask. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga3a2123f0bbf6fe843c8542e349c680eb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga3a2123f0bbf6fe843c8542e349c680eb">◆ </a></span>ip_addr_netcmp</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_netcmp</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">mask </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td>   <a class="el" href="group__ipaddr.html#gad1bbbe4c93ea2368663e90814953b929">ip_addr_net_eq</a>((addr1), (addr2), (mask))</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000011">Deprecated:</a></b></dt><dd>Renamed to <a class="el" href="group__ipaddr.html#gad1bbbe4c93ea2368663e90814953b929">ip_addr_net_eq</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga8ac2686417ec2974bb0b3fc6ee0ee1a7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga8ac2686417ec2974bb0b3fc6ee0ee1a7">◆ </a></span>ip_addr_zoneless_eq</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define ip_addr_zoneless_eq</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr1, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">addr2 </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ((IP_GET_TYPE(addr1) != IP_GET_TYPE(addr2)) ? 0 : (IP_IS_V6_VAL(*(addr1)) ? \</div>
|
|
<div class="line"> ip6_addr_zoneless_eq(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(addr1), <a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(addr2)) : \</div>
|
|
<div class="line"> ip4_addr_eq(<a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr1), <a class="code" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(addr2))))</div>
|
|
</div><!-- fragment --><p>Check if two ip addresses are equal, ignoring the zone. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gabe43b154533b73585c4e58f568370ede"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gabe43b154533b73585c4e58f568370ede">◆ </a></span>IP_ANY_TYPE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define IP_ANY_TYPE   (&ip_addr_any_type)</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Macro representing the 'any' address. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Typedef Documentation</h2>
|
|
<a id="ga335a8c9df66319e88a1a529047ce0a1e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga335a8c9df66319e88a1a529047ce0a1e">◆ </a></span>ip_addr_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef struct <a class="el" href="structip__addr.html">ip_addr</a> <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>A union struct for both IP version's addresses. ATTENTION: watch out for its size when adding IPv6 address scope! </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="gaf2142f0dfdcc938e2db16aa745ed585c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaf2142f0dfdcc938e2db16aa745ed585c">◆ </a></span>lwip_ip_addr_type</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="group__ipaddr.html#gaf2142f0dfdcc938e2db16aa745ed585c">lwip_ip_addr_type</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>IP address types for use in <a class="el" href="structip__addr.html#a66eaa8e9051e7102bf9f0c195fbe555a">ip_addr_t.type</a> member. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__tcp__raw.html#gac14e757a21a4a87c6aa52372c210b937">tcp_new_ip_type()</a>, <a class="el" href="group__udp__raw.html#gaf1ab236050dd351e93f112cfbc1ada88">udp_new_ip_type()</a>, <a class="el" href="group__raw__raw.html#ga3292b7ed2271ac29983edcef16dcbc11">raw_new_ip_type()</a>. </dd></dl>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049"></a>IPADDR_TYPE_V4 </td><td class="fielddoc"><p>IPv4 </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02"></a>IPADDR_TYPE_V6 </td><td class="fielddoc"><p>IPv6 </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaf2142f0dfdcc938e2db16aa745ed585cac6b2c99cf920e08efcb55dc40e42944e"></a>IPADDR_TYPE_ANY </td><td class="fielddoc"><p>IPv4+IPv6 ("dual-stack") </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="ga4de70fdd7fd36c5b6eaed8b855d5f151"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4de70fdd7fd36c5b6eaed8b855d5f151">◆ </a></span>ipaddr_aton()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int ipaddr_aton </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>cp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> * </td>
|
|
<td class="paramname"><em>addr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Convert IP address string (both versions) to numeric. The version is auto-detected from the string.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">cp</td><td>IP address string to convert </td></tr>
|
|
<tr><td class="paramname">addr</td><td>conversion result is stored here </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on error </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gace12d28aef35bb15962e8563aea571b1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gace12d28aef35bb15962e8563aea571b1">◆ </a></span>ipaddr_ntoa()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">char* ipaddr_ntoa </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> * </td>
|
|
<td class="paramname"><em>addr</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Convert numeric IP address (both versions) into ASCII representation. returns ptr to static buffer; not reentrant!</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">addr</td><td>ip address in network order to convert </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>pointer to a global static (!) buffer that holds the ASCII representation of addr </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga3684dabc0cae597ffb5b51d41f1d886f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga3684dabc0cae597ffb5b51d41f1d886f">◆ </a></span>ipaddr_ntoa_r()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">char* ipaddr_ntoa_r </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> * </td>
|
|
<td class="paramname"><em>addr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>buflen</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Same as ipaddr_ntoa, but reentrant since a user-supplied buffer is used.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">addr</td><td>ip address in network order to convert </td></tr>
|
|
<tr><td class="paramname">buf</td><td>target buffer where the string is stored </td></tr>
|
|
<tr><td class="paramname">buflen</td><td>length of buf </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>either pointer to buf which now holds the ASCII representation of addr or NULL if buf was too small </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<div class="ttc" id="aip4__addr_8h_html_a46dabb4df212d156004fa5afe03e2051"><div class="ttname"><a href="ip4__addr_8h.html#a46dabb4df212d156004fa5afe03e2051">ip4_addr_isloopback</a></div><div class="ttdeci">#define ip4_addr_isloopback(ipaddr)</div><div class="ttdef"><b>Definition:</b> ip4_addr.h:119</div></div>
|
|
<div class="ttc" id="aip4__addr_8h_html_a95d05df9201602fc873a97fb61fd1134"><div class="ttname"><a href="ip4__addr_8h.html#a95d05df9201602fc873a97fb61fd1134">ip4_addr_net_eq</a></div><div class="ttdeci">#define ip4_addr_net_eq(addr1, addr2, mask)</div><div class="ttdef"><b>Definition:</b> ip4_addr.h:146</div></div>
|
|
<div class="ttc" id="astructnetif_html"><div class="ttname"><a href="structnetif.html">netif</a></div><div class="ttdef"><b>Definition:</b> netif.h:269</div></div>
|
|
<div class="ttc" id="agroup__ip4addr_html_gad7268a496b7e3f872efecd859eba6f03"><div class="ttname"><a href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a></div><div class="ttdeci">#define ip_2_ip4(ipaddr)</div><div class="ttdef"><b>Definition:</b> ip_addr.h:120</div></div>
|
|
<div class="ttc" id="agroup__ip6addr_html_ga06e75bcd198012b5ba39480c233608bd"><div class="ttname"><a href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a></div><div class="ttdeci">#define ip_2_ip6(ipaddr)</div><div class="ttdef"><b>Definition:</b> ip_addr.h:116</div></div>
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|