文件操作 - netaddr.ip-module.html
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/doc/python-netaddr-0.7.5/api/netaddr.ip-module.html
编辑文件内容
<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>netaddr.ip</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="netaddr-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://github.com/drkjam/netaddr/">Project Homepage</a></th> </tr></table></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="netaddr-module.html">Package netaddr</a> :: Package ip </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="netaddr.ip-module.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== PACKAGE DESCRIPTION ==================== --> <h1 class="epydoc">Package ip</h1><p class="nomargin-top"></p> <p>Routines for IPv4 and IPv6 addresses, subnets and ranges.</p> <!-- ==================== SUBMODULES ==================== --> <a name="section-Submodules"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Submodules</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Submodules" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr><td class="summary"> <ul class="nomargin"> <li> <strong class="uidlink"><a href="netaddr.ip.glob-module.html">netaddr.ip.glob</a></strong>: <em class="summary">Routines and classes for supporting and expressing IP address ranges using a glob style syntax.</em> </li> <li> <strong class="uidlink"><a href="netaddr.ip.iana-module.html">netaddr.ip.iana</a></strong>: <em class="summary">Routines for accessing data published by IANA (Internet Assigned Numbers Authority).</em> </li> <li> <strong class="uidlink"><a href="netaddr.ip.intset-module.html">netaddr.ip.intset</a></strong>: <em class="summary">Immutable integer set type.</em> </li> <li> <strong class="uidlink"><a href="netaddr.ip.nmap-module.html">netaddr.ip.nmap</a></strong>: <em class="summary">Routines for dealing with nmap-style IPv4 address ranges.</em> </li> <li> <strong class="uidlink"><a href="netaddr.ip.rfc1924-module.html">netaddr.ip.rfc1924</a></strong>: <em class="summary">A basic implementation of RFC 1924 ;-)</em> </li> <li> <strong class="uidlink"><a href="netaddr.ip.sets-module.html">netaddr.ip.sets</a></strong>: <em class="summary">Set based operations for IP addresses and subnets.</em> </li> </ul></td></tr> </table> <br /> <!-- ==================== CLASSES ==================== --> <a name="section-Classes"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Classes</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Classes" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip.BaseIP-class.html" class="summary-name">BaseIP</a><br /> An abstract base class for common operations shared between various IP related subclasses. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip.IPAddress-class.html" class="summary-name">IPAddress</a><br /> An individual IPv4 or IPv6 address without a net mask or subnet prefix. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip.IPListMixin-class.html" class="summary-name">IPListMixin</a><br /> A mixin class providing shared list-like functionality to classes representing groups of IP addresses. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip.IPNetwork-class.html" class="summary-name">IPNetwork</a><br /> An IPv4 or IPv6 network or subnet. </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip.IPRange-class.html" class="summary-name">IPRange</a><br /> An arbitrary IPv4 or IPv6 address range. </td> </tr> </table> <!-- ==================== FUNCTIONS ==================== --> <a name="section-Functions"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Functions</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Functions" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a name="parse_ip_network"></a><span class="summary-sig-name">parse_ip_network</span>(<span class="summary-sig-arg">module</span>, <span class="summary-sig-arg">addr</span>, <span class="summary-sig-arg">implicit_prefix</span>=<span class="summary-sig-default">False</span>, <span class="summary-sig-arg">flags</span>=<span class="summary-sig-default">0</span>)</span></td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#iter_unique_ips" class="summary-sig-name">iter_unique_ips</a>(<span class="summary-sig-arg">*args</span>)</span><br /> Returns: A generator that flattens out IP subnets, yielding unique individual IP addresses (no duplicates).</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#cidr_abbrev_to_verbose" class="summary-sig-name">cidr_abbrev_to_verbose</a>(<span class="summary-sig-arg">abbrev_cidr</span>)</span><br /> A function that converts abbreviated IPv4 CIDRs to their more verbose equivalent.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#cidr_merge" class="summary-sig-name">cidr_merge</a>(<span class="summary-sig-arg">ip_addrs</span>)</span><br /> A function that accepts an iterable sequence of IP addresses and subnets merging them into the smallest possible list of CIDRs.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#cidr_exclude" class="summary-sig-name">cidr_exclude</a>(<span class="summary-sig-arg">target</span>, <span class="summary-sig-arg">exclude</span>)</span><br /> Removes an exclude IP address or subnet from target IP subnet.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#spanning_cidr" class="summary-sig-name">spanning_cidr</a>(<span class="summary-sig-arg">ip_addrs</span>)</span><br /> Function that accepts a sequence of IP addresses and subnets returning a single <a href="netaddr.ip.IPNetwork-class.html" class="link">IPNetwork</a> subnet that is large enough to span the lower and upper bound IP addresses with a possible overlap on either end.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#iter_iprange" class="summary-sig-name">iter_iprange</a>(<span class="summary-sig-arg">start</span>, <span class="summary-sig-arg">end</span>, <span class="summary-sig-arg">step</span>=<span class="summary-sig-default">1</span>)</span><br /> A generator that produces IPAddress objects between an arbitrary start and stop IP address with intervals of step between them.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#iprange_to_cidrs" class="summary-sig-name">iprange_to_cidrs</a>(<span class="summary-sig-arg">start</span>, <span class="summary-sig-arg">end</span>)</span><br /> A function that accepts an arbitrary start and end IP address or subnet and returns a list of CIDR subnets that fit exactly between the boundaries of the two with no overlap.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#smallest_matching_cidr" class="summary-sig-name">smallest_matching_cidr</a>(<span class="summary-sig-arg">ip</span>, <span class="summary-sig-arg">cidrs</span>)</span><br /> Matches an IP address or subnet against a given sequence of IP addresses and subnets.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#largest_matching_cidr" class="summary-sig-name">largest_matching_cidr</a>(<span class="summary-sig-arg">ip</span>, <span class="summary-sig-arg">cidrs</span>)</span><br /> Matches an IP address or subnet against a given sequence of IP addresses and subnets.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="netaddr.ip-module.html#all_matching_cidrs" class="summary-sig-name">all_matching_cidrs</a>(<span class="summary-sig-arg">ip</span>, <span class="summary-sig-arg">cidrs</span>)</span><br /> Matches an IP address or subnet against a given sequence of IP addresses and subnets.</td> <td align="right" valign="top"> </td> </tr> </table> </td> </tr> </table> <!-- ==================== VARIABLES ==================== --> <a name="section-Variables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-Variables" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="RE_CIDR_ADJACENT"></a><span class="summary-name">RE_CIDR_ADJACENT</span> = <code title="re.compile(r'^([01]+)0 \11$')">re.compile(r'^<code class="re-group">(</code><code class="re-group">[</code>01<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code>0 <code class="re-ref">\1</code>1$')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="RE_CIDR_WITHIN"></a><span class="summary-name">RE_CIDR_WITHIN</span> = <code title="re.compile(r'^([01]+) \1[10]+$')">re.compile(r'^<code class="re-group">(</code><code class="re-group">[</code>01<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code> <code class="re-ref">\1</code><code class="re-group">[</code>10<code class="re-group">]</code><code class="re-op">+</code>$')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="RE_VALID_CIDR_BITS"></a><span class="summary-name">RE_VALID_CIDR_BITS</span> = <code title="re.compile(r'^[01]+$')">re.compile(r'^<code class="re-group">[</code>01<code class="re-group">]</code><code class="re-op">+</code>$')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV4_LOOPBACK"></a><span class="summary-name">IPV4_LOOPBACK</span> = <code title="IPNetwork('127.0.0.0/8')">IPNetwork('127.0.0.0/8')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip-module.html#IPV4_PRIVATE" class="summary-name">IPV4_PRIVATE</a> = <code title="(IPNetwork('10.0.0.0/8'), IPNetwork('172.16.0.0/12'), IPNetwork('192.0.2.0/24'), IPNetwork('192.168.0.0/16'), IPRange('239.0.0.0', '239.255.255.255'))"><code class="variable-group">(</code>IPNetwork('10.0.0.0/8')<code class="variable-op">, </code>IPNetwork('172.16.0.0<code class="variable-ellipsis">...</code></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV4_LINK_LOCAL"></a><span class="summary-name">IPV4_LINK_LOCAL</span> = <code title="IPNetwork('169.254.0.0/16')">IPNetwork('169.254.0.0/16')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV4_MULTICAST"></a><span class="summary-name">IPV4_MULTICAST</span> = <code title="IPNetwork('224.0.0.0/4')">IPNetwork('224.0.0.0/4')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV4_6TO4"></a><span class="summary-name">IPV4_6TO4</span> = <code title="IPNetwork('192.88.99.0/24')">IPNetwork('192.88.99.0/24')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip-module.html#IPV4_RESERVED" class="summary-name">IPV4_RESERVED</a> = <code title="(IPNetwork('39.0.0.0/8'), IPNetwork('128.0.0.0/16'), IPNetwork('191.255.0.0/16'), IPNetwork('192.0.0.0/24'), IPNetwork('223.255.255.0/24'), IPNetwork('240.0.0.0/4'), IPRange('234.0.0.0', '238.255.255.255'), IPRange('225.0.0.0', '231.255.255.255'))"><code class="variable-group">(</code>IPNetwork('39.0.0.0/8')<code class="variable-op">, </code>IPNetwork('128.0.0.0<code class="variable-ellipsis">...</code></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV6_LOOPBACK"></a><span class="summary-name">IPV6_LOOPBACK</span> = <code title="IPAddress('::1')">IPAddress('::1')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV6_PRIVATE"></a><span class="summary-name">IPV6_PRIVATE</span> = <code title="(IPNetwork('fc00::/7'), IPNetwork('fec0::/10'))"><code class="variable-group">(</code>IPNetwork('fc00::/7')<code class="variable-op">, </code>IPNetwork('fec0::/10')<code class="variable-group">)</code></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV6_LINK_LOCAL"></a><span class="summary-name">IPV6_LINK_LOCAL</span> = <code title="IPNetwork('fe80::/10')">IPNetwork('fe80::/10')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="IPV6_MULTICAST"></a><span class="summary-name">IPV6_MULTICAST</span> = <code title="IPNetwork('ff00::/8')">IPNetwork('ff00::/8')</code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a href="netaddr.ip-module.html#IPV6_RESERVED" class="summary-name">IPV6_RESERVED</a> = <code title="(IPNetwork('ff00::/12'), IPNetwork('::/8'), IPNetwork('100::/8'), IPNetwork('200::/7'), IPNetwork('400::/6'), IPNetwork('800::/5'), IPNetwork('1000::/4'), IPNetwork('4000::/3'), ..."><code class="variable-group">(</code>IPNetwork('ff00::/12')<code class="variable-op">, </code>IPNetwork('::/8')<code class="variable-op">, </code>IP<code class="variable-ellipsis">...</code></code> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'netaddr.ip'"><code class="variable-quote">'</code><code class="variable-string">netaddr.ip</code><code class="variable-quote">'</code></code> </td> </tr> </table> <!-- ==================== FUNCTION DETAILS ==================== --> <a name="section-FunctionDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Function Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-FunctionDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="iter_unique_ips"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">iter_unique_ips</span>(<span class="sig-arg">*args</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>args</code></strong> - A list of IP addresses and subnets passed in as arguments.</li> </ul></dd> <dt>Returns:</dt> <dd>A generator that flattens out IP subnets, yielding unique individual IP addresses (no duplicates).</dd> </dl> </td></tr></table> </div> <a name="cidr_abbrev_to_verbose"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">cidr_abbrev_to_verbose</span>(<span class="sig-arg">abbrev_cidr</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>A function that converts abbreviated IPv4 CIDRs to their more verbose equivalent.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>abbrev_cidr</code></strong> - an abbreviated CIDR. <p>Uses the old-style classful IP address rules to decide on a default subnet prefix if one is not explicitly provided.</p> <p>Only supports IPv4 addresses.</p> <p>Examples :</p> <pre class="literalblock"> 10 - 10.0.0.0/8 10/16 - 10.0.0.0/16 128 - 128.0.0.0/16 128/8 - 128.0.0.0/8 192.168 - 192.168.0.0/16 </pre></li> </ul></dd> <dt>Returns:</dt> <dd>A verbose CIDR from an abbreviated CIDR or old-style classful network address, The original value if it was not recognised as a supported abbreviation.</dd> </dl> </td></tr></table> </div> <a name="cidr_merge"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">cidr_merge</span>(<span class="sig-arg">ip_addrs</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>A function that accepts an iterable sequence of IP addresses and subnets merging them into the smallest possible list of CIDRs. It merges adjacent subnets where possible, those contained within others and also removes any duplicates.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>ip_addrs</code></strong> - an iterable sequence of IP addresses and subnets.</li> </ul></dd> <dt>Returns:</dt> <dd>a summarized list of <a href="netaddr.ip.IPNetwork-class.html" class="link">IPNetwork</a> objects.</dd> </dl> </td></tr></table> </div> <a name="cidr_exclude"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">cidr_exclude</span>(<span class="sig-arg">target</span>, <span class="sig-arg">exclude</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Removes an exclude IP address or subnet from target IP subnet.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>target</code></strong> - the target IP address or subnet to be divided up.</li> <li><strong class="pname"><code>exclude</code></strong> - the IP address or subnet to be removed from target.</li> </ul></dd> <dt>Returns:</dt> <dd>list of <a href="netaddr.ip.IPNetwork-class.html" class="link">IPNetwork</a> objects remaining after exclusion.</dd> </dl> </td></tr></table> </div> <a name="spanning_cidr"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">spanning_cidr</span>(<span class="sig-arg">ip_addrs</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Function that accepts a sequence of IP addresses and subnets returning a single <a href="netaddr.ip.IPNetwork-class.html" class="link">IPNetwork</a> subnet that is large enough to span the lower and upper bound IP addresses with a possible overlap on either end.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>ip_addrs</code></strong> - sequence of IP addresses and subnets.</li> </ul></dd> <dt>Returns:</dt> <dd>a single spanning <a href="netaddr.ip.IPNetwork-class.html" class="link">IPNetwork</a> subnet.</dd> </dl> </td></tr></table> </div> <a name="iter_iprange"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">iter_iprange</span>(<span class="sig-arg">start</span>, <span class="sig-arg">end</span>, <span class="sig-arg">step</span>=<span class="sig-default">1</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>A generator that produces IPAddress objects between an arbitrary start and stop IP address with intervals of step between them. Sequences produce are inclusive of boundary IPs.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>start</code></strong> - start IP address.</li> <li><strong class="pname"><code>end</code></strong> - end IP address.</li> <li><strong class="pname"><code>step</code></strong> - (optional) size of step between IP addresses. Default: 1</li> </ul></dd> <dt>Returns:</dt> <dd>an iterator of one or more <a href="netaddr.ip.IPAddress-class.html" class="link">IPAddress</a> objects.</dd> </dl> </td></tr></table> </div> <a name="iprange_to_cidrs"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">iprange_to_cidrs</span>(<span class="sig-arg">start</span>, <span class="sig-arg">end</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>A function that accepts an arbitrary start and end IP address or subnet and returns a list of CIDR subnets that fit exactly between the boundaries of the two with no overlap.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>start</code></strong> - the start IP address or subnet.</li> <li><strong class="pname"><code>end</code></strong> - the end IP address or subnet.</li> </ul></dd> <dt>Returns:</dt> <dd>a list of one or more IP addresses and subnets.</dd> </dl> </td></tr></table> </div> <a name="smallest_matching_cidr"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">smallest_matching_cidr</span>(<span class="sig-arg">ip</span>, <span class="sig-arg">cidrs</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Matches an IP address or subnet against a given sequence of IP addresses and subnets.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>ip</code></strong> - a single IP address or subnet.</li> <li><strong class="pname"><code>cidrs</code></strong> - a sequence of IP addresses and/or subnets.</li> </ul></dd> <dt>Returns:</dt> <dd>the smallest (most specific) matching IPAddress or IPNetwork object from the provided sequence, None if there was no match.</dd> </dl> </td></tr></table> </div> <a name="largest_matching_cidr"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">largest_matching_cidr</span>(<span class="sig-arg">ip</span>, <span class="sig-arg">cidrs</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Matches an IP address or subnet against a given sequence of IP addresses and subnets.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>ip</code></strong> - a single IP address or subnet.</li> <li><strong class="pname"><code>cidrs</code></strong> - a sequence of IP addresses and/or subnets.</li> </ul></dd> <dt>Returns:</dt> <dd>the largest (least specific) matching IPAddress or IPNetwork object from the provided sequence, None if there was no match.</dd> </dl> </td></tr></table> </div> <a name="all_matching_cidrs"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">all_matching_cidrs</span>(<span class="sig-arg">ip</span>, <span class="sig-arg">cidrs</span>)</span> </h3> </td><td align="right" valign="top" > </td> </tr></table> <p>Matches an IP address or subnet against a given sequence of IP addresses and subnets.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>ip</code></strong> - a single IP address or subnet.</li> <li><strong class="pname"><code>cidrs</code></strong> - a sequence of IP addresses and/or subnets.</li> </ul></dd> <dt>Returns:</dt> <dd>all matching IPAddress and/or IPNetwork objects from the provided sequence, an empty list if there was no match.</dd> </dl> </td></tr></table> </div> <br /> <!-- ==================== VARIABLES DETAILS ==================== --> <a name="section-VariablesDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Variables Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-VariablesDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="IPV4_PRIVATE"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">IPV4_PRIVATE</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-group">(</code>IPNetwork('10.0.0.0/8')<code class="variable-op">,</code> IPNetwork('172.16.0.0/12')<code class="variable-op">,</code> IPNetwork('192.0.2.0/24')<code class="variable-op">,</code> IPNetwork('192.168.0.0/16')<code class="variable-op">,</code> IPRange('239.0.0.0', '239.255.255.255')<code class="variable-group">)</code> </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <a name="IPV4_RESERVED"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">IPV4_RESERVED</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-group">(</code>IPNetwork('39.0.0.0/8')<code class="variable-op">,</code> IPNetwork('128.0.0.0/16')<code class="variable-op">,</code> IPNetwork('191.255.0.0/16')<code class="variable-op">,</code> IPNetwork('192.0.0.0/24')<code class="variable-op">,</code> IPNetwork('223.255.255.0/24')<code class="variable-op">,</code> IPNetwork('240.0.0.0/4')<code class="variable-op">,</code> IPRange('234.0.0.0', '238.255.255.255')<code class="variable-op">,</code> IPRange('225.0.0.0', '231.255.255.255')<code class="variable-group">)</code> </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <a name="IPV6_RESERVED"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <h3 class="epydoc">IPV6_RESERVED</h3> <dl class="fields"> </dl> <dl class="fields"> <dt>Value:</dt> <dd><table><tr><td><pre class="variable"> <code class="variable-group">(</code>IPNetwork('ff00::/12')<code class="variable-op">,</code> IPNetwork('::/8')<code class="variable-op">,</code> IPNetwork('100::/8')<code class="variable-op">,</code> IPNetwork('200::/7')<code class="variable-op">,</code> IPNetwork('400::/6')<code class="variable-op">,</code> IPNetwork('800::/5')<code class="variable-op">,</code> IPNetwork('1000::/4')<code class="variable-op">,</code> IPNetwork('4000::/3')<code class="variable-op">,</code> <code class="variable-ellipsis">...</code> </pre></td></tr></table> </dd> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="netaddr-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://github.com/drkjam/netaddr/">Project Homepage</a></th> </tr></table></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Tue Oct 5 23:06:19 2010 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>
修改文件时间
将文件时间修改为当前时间的前一年
删除文件