Submit
Path:
~
/
/
lib
/
python2.7
/
site-packages
/
File Content:
IPy-0.75-py2.7.egg-info
Metadata-Version: 1.1 Name: IPy Version: 0.75 Summary: Class and tools for handling of IPv4 and IPv6 addresses and networks Home-page: https://github.com/haypo/python-ipy Author: Victor Stinner Author-email: victor.stinner AT haypocalc.com License: BSD License Download-URL: https://github.com/haypo/python-ipy Description: IPy - class and tools for handling of IPv4 and IPv6 addresses and networks. Website: https://github.com/haypo/python-ipy/ Presentation of the API ======================= The IP class allows a comfortable parsing and handling for most notations in use for IPv4 and IPv6 addresses and networks. It was greatly inspired by RIPE's Perl module NET::IP's interface but doesn't share the implementation. It doesn't share non-CIDR netmasks, so funky stuff like a netmask of 0xffffff0f can't be done here. >>> from IPy import IP >>> ip = IP('127.0.0.0/30') >>> for x in ip: ... print(x) ... 127.0.0.0 127.0.0.1 127.0.0.2 127.0.0.3 >>> ip2 = IP('0x7f000000/30') >>> ip == ip2 1 >>> ip.reverseNames() ['0.0.0.127.in-addr.arpa.', '1.0.0.127.in-addr.arpa.', '2.0.0.127.in-addr.arpa.', '3.0.0.127.in-addr.arpa.'] >>> ip.reverseName() '0-3.0.0.127.in-addr.arpa.' >>> ip.iptype() 'PRIVATE' Supports most IP address formats ================================ It can detect about a dozen different ways of expressing IP addresses and networks, parse them and distinguish between IPv4 and IPv6 addresses: >>> IP('10.0.0.0/8').version() 4 >>> IP('::1').version() 6 IPv4 addresses -------------- >>> print(IP(0x7f000001)) 127.0.0.1 >>> print(IP('0x7f000001')) 127.0.0.1 >>> print(IP('127.0.0.1')) 127.0.0.1 >>> print(IP('10')) 10.0.0.0 IPv6 addresses -------------- >>> print(IP('1080:0:0:0:8:800:200C:417A')) 1080::8:800:200c:417a >>> print(IP('1080::8:800:200C:417A')) 1080::8:800:200c:417a >>> print(IP('::1')) ::1 >>> print(IP('::13.1.68.3')) ::d01:4403 Network mask and prefixes ------------------------- >>> print(IP('127.0.0.0/8')) 127.0.0.0/8 >>> print(IP('127.0.0.0/255.0.0.0')) 127.0.0.0/8 >>> print(IP('127.0.0.0-127.255.255.255')) 127.0.0.0/8 Derive network address =========================== IPy can transform an IP address into a network address by applying the given netmask: >>> print(IP('127.0.0.1/255.0.0.0', make_net=True)) 127.0.0.0/8 This can also be done for existing IP instances: >>> print(IP('127.0.0.1').make_net('255.0.0.0')) 127.0.0.0/8 Convert address to string ========================= Nearly all class methods which return a string have an optional parameter 'wantprefixlen' which controls if the prefixlen or netmask is printed. Per default the prefilen is always shown if the network contains more than one address:: wantprefixlen == 0 / None don't return anything 1.2.3.0 wantprefixlen == 1 /prefix 1.2.3.0/24 wantprefixlen == 2 /netmask 1.2.3.0/255.255.255.0 wantprefixlen == 3 -lastip 1.2.3.0-1.2.3.255 You can also change the defaults on an per-object basis by fiddling with the class members: * NoPrefixForSingleIp * WantPrefixLen Examples of string conversions: >>> IP('10.0.0.0/32').strNormal() '10.0.0.0' >>> IP('10.0.0.0/24').strNormal() '10.0.0.0/24' >>> IP('10.0.0.0/24').strNormal(0) '10.0.0.0' >>> IP('10.0.0.0/24').strNormal(1) '10.0.0.0/24' >>> IP('10.0.0.0/24').strNormal(2) '10.0.0.0/255.255.255.0' >>> IP('10.0.0.0/24').strNormal(3) '10.0.0.0-10.0.0.255' >>> ip = IP('10.0.0.0') >>> print(ip) 10.0.0.0 >>> ip.NoPrefixForSingleIp = None >>> print(ip) 10.0.0.0/32 >>> ip.WantPrefixLen = 3 >>> print(ip) 10.0.0.0-10.0.0.0 Compatibility and links ======================= IPy 0.73 works on Python version 2.5-2.7. This Python module is under BSD license: see COPYING file. Further Information might be available at: https://github.com/haypo/python-ipy TODO ==== * better comparison (__cmp__ and friends) * tests for __cmp__ * always write hex values lowercase * interpret 2001:1234:5678:1234/64 as 2001:1234:5678:1234::/64 * move size in bits into class variables to get rid of some "if self._ipversion ..." * support for base85 encoding * support for output of IPv6 encoded IPv4 Addresses * update address type tables * first-last notation should be allowed for IPv6 * add IPv6 docstring examples * check better for negative parameters * add addition / aggregation * move reverse name stuff out of the classes and refactor it * support for aggregation of more than two nets at once * support for aggregation with "holes" * support for finding common prefix * '>>' and '<<' for prefix manipulation * add our own exceptions instead ValueError all the time * rename checkPrefix to checkPrefixOk * add more documentation and doctests * refactor What's new ========== Version 0.75 (2011-04-12) ------------------------- * IP('::/0').netmask() gives IP('::') instead of IP('0.0.0.0') Version 0.74 (2011-02-16) ------------------------- * Fix tests for Python 3.1 and 3.2 * ip.__nonzero__() and (ipa in ipb) return a bool instead of 0 or 1 * IP('0.0.0.0/0') + IP('0.0.0.0/0') raises an error, fix written by Arfrever Version 0.73 (2011-02-15) ------------------------- * Support Python 3: setup.py runs 2to3 * Update the ranges for IPv6 IPs * Fix reverseName() and reverseNames() for IPv4 in IPv6 addresses * Drop support of Python < 2.5 Version 0.72 (2010-11-23) ------------------------- * Include examples and MANIFEST.in in source build (add them to MANIFEST.in) * Remove __rcsid__ constant from IPy module Version 0.71 (2010-10-01) ------------------------- * Use xrange() instead of range() * Use isinstance(x, int) instead of type(x) == types.IntType * Prepare support of Python3 (use integer division: x // y) * Fix IP(long) constructor: ensure that the address is not too large * Constructor raise a TypeError if the type is not int, long, str or unicode * 223.0.0.0/8 is now public (belongs to APNIC) Version 0.70 (2009-10-29) ------------------------- * New "major" version because it may break compatibility * Fix __cmp__(): IP('0.0.0.0/0') and IP('0.0.0.0') are not equal * Fix IP.net() of the network "::/0": "::" instead of "0.0.0.0". IPy 0.63 should fix this bug, but it wasn't. Version 0.64 (2009-08-19) ------------------------- * Create MANIFEST.in to fix setup.py bdist_rpm, fix by Robert Nickel Version 0.63 (2009-06-23) ------------------------- * Fix formatting of "IPv4 in IPv6" network, eg. IP('::ffff:192.168.10.0/120'), the netmask ("/120" in the example) was missing! Version 0.62 (2008-07-15) ------------------------- * Fix reverse DNS of IPv6 address: use ".ip6.arpa." suffix instead of deprecated ".ip6.int." suffix Version 0.61 (2008-06-12) ------------------------- * Patch from Aras Vaichas allowing the [-1] operator to work with an IP object of size 1. Version 0.60 (2008-05-16) ------------------------- * strCompressed() formats '::ffff:a.b.c.d' correctly * Use strCompressed() instead of strFullsize() to format IP addresses, ouput is smarter with IPv6 address * Remove check_addr_prefixlen because it generates invalid IP address Keywords: ipv4 ipv6 netmask Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Intended Audience :: System Administrators Classifier: Environment :: Plugins Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Communications Classifier: Topic :: Internet Classifier: Topic :: System :: Networking Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Natural Language :: English Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
Babel-0.9.6-py2.7.egg-info
---
0755
Jinja2-2.7.2-py2.7.egg-info
---
0755
Pygments-2.0.2-py2.7.egg-info
---
0755
_markerlib
---
0755
awscli
---
0755
awscli-1.11.71.dist-info
---
0755
babel
---
0755
backports
---
0755
boto
---
0755
boto-2.45.0-py2.7.egg-info
---
0755
botocore
---
0755
botocore-1.5.34.dist-info
---
0755
chardet
---
0755
chardet-2.2.1-py2.7.egg-info
---
0755
clcommon
---
0755
cloud_init-19.4-py2.7.egg-info
---
0755
cloudinit
---
0755
colorama
---
0755
colorama-0.3.7.dist-info
---
0755
concurrent
---
0755
dateutil
---
0755
decorator-3.4.0-py2.7.egg-info
---
0755
docutils
---
0755
docutils-0.13.1.dist-info
---
0755
firewall
---
0755
futures-3.0.5.dist-info
---
0755
google
---
0755
iniparse
---
0755
isc
---
0755
javapackages
---
0755
javapackages-1.0.0-py2.7.egg-info
---
0755
jinja2
---
0755
jmespath
---
0755
jmespath-0.9.2.dist-info
---
0755
jsonpatch-1.2-py2.7.egg-info
---
0755
jsonpointer-1.9-py2.7.egg-info
---
0755
kitchen
---
0755
kitchen-1.1.1-py2.7.egg-info
---
0755
markdown
---
0755
pip
---
0755
pip-8.1.2-py2.7.egg-info
---
0755
ply
---
0755
prettytable-0.7.2-py2.7.egg-info
---
0755
procfs
---
0755
protobuf-2.5.0-py2.7.egg-info
---
0755
pyasn1
---
0755
pyasn1-0.1.9-py2.7.egg-info
---
0755
pycriu
---
0755
pygments
---
0755
python_dateutil-2.6.0.dist-info
---
0755
pyudev
---
0755
pyudev-0.15-py2.7.egg-info
---
0755
pyzor
---
0755
pyzor-1.0.0-py2.7.egg-info
---
0755
redhat_support_lib
---
0755
redhat_support_tool
---
0755
requests
---
0755
rhn
---
0755
rpmUtils
---
0755
rsa
---
0755
rsa-3.4.1-py2.7.egg-info
---
0755
s3transfer
---
0755
s3transfer-0.1.10.dist-info
---
0755
serial
---
0755
setuptools
---
0755
setuptools-0.9.8-py2.7.egg-info
---
0755
six-1.9.0-py2.7.egg-info
---
0755
slip
---
0755
tuned
---
0755
urlgrabber
---
0755
urllib3
---
0755
urllib3-1.13.1-py2.7.egg-info
---
0755
yum
---
0755
yumutils
---
0755
IPy-0.75-py2.7.egg-info
10061 bytes
0644
IPy.py
51270 bytes
0644
IPy.pyc
40873 bytes
0644
IPy.pyo
40873 bytes
0644
Markdown-2.4.1-py2.7.egg-info
2282 bytes
0644
backports.ssl_match_hostname-3.5.0.1-py2.7.egg-info
4051 bytes
0644
clsudo.py
12953 bytes
0644
clsudo.pyc
11285 bytes
0644
clsudo.pyo
11285 bytes
0644
configobj-4.7.2-py2.7.egg-info
2135 bytes
0644
configobj.py
88163 bytes
0644
configobj.pyc
66278 bytes
0644
configobj.pyo
66278 bytes
0644
crit-0.0.1-py2.7.egg-info
231 bytes
0644
decorator.py
10639 bytes
0644
decorator.pyc
8563 bytes
0644
decorator.pyo
8516 bytes
0644
easy_install.py
126 bytes
0644
easy_install.pyc
315 bytes
0644
easy_install.pyo
315 bytes
0644
hwdata.py
6033 bytes
0644
hwdata.pyc
4487 bytes
0644
hwdata.pyo
4487 bytes
0644
iniparse-0.4-py2.7.egg-info
1083 bytes
0644
ipaddr-2.1.11-py2.7.egg-info
588 bytes
0644
ipaddr.py
59560 bytes
0644
ipaddr.pyc
57572 bytes
0644
ipaddr.pyo
57371 bytes
0644
ipaddress-1.0.16-py2.7.egg-info
783 bytes
0644
ipaddress.py
79904 bytes
0644
ipaddress.pyc
75525 bytes
0644
ipaddress.pyo
75335 bytes
0644
isc-2.0-py2.7.egg-info
267 bytes
0644
jsonpatch.py
15946 bytes
0644
jsonpatch.pyc
17386 bytes
0644
jsonpatch.pyo
17182 bytes
0644
jsonpointer.py
9367 bytes
0644
jsonpointer.pyc
9615 bytes
0644
jsonpointer.pyo
9457 bytes
0644
pciutils-1.7.3-py2.7.egg-info
267 bytes
0644
pkg_resources.py
101108 bytes
0644
pkg_resources.pyc
108033 bytes
0644
pkg_resources.pyo
108001 bytes
0644
ply-3.4-py2.7.egg-info
900 bytes
0644
prettytable.py
54204 bytes
0644
prettytable.pyc
51591 bytes
0644
prettytable.pyo
50652 bytes
0644
protobuf-2.5.0-py2.7-nspkg.pth
307 bytes
0644
pyparsing-1.5.6-py2.7.egg-info
670 bytes
0644
pyparsing.py
155429 bytes
0644
pyparsing.pyc
148895 bytes
0644
pyparsing.pyo
148895 bytes
0644
pyserial-2.6-py2.7.egg-info
1399 bytes
0644
python_linux_procfs-0.4.9-py2.7.egg-info
350 bytes
0644
requests-2.9.1-py2.7.egg-info
46161 bytes
0644
rhnlib-2.5.65-py2.7.egg-info
345 bytes
0644
secureio.py
9222 bytes
0644
secureio.pyc
4686 bytes
0644
secureio.pyo
4686 bytes
0644
six.py
29664 bytes
0644
six.pyc
29708 bytes
0644
six.pyo
29708 bytes
0644
slip-0.4.0-py2.7.egg-info
196 bytes
0644
slip.dbus-0.4.0-py2.7.egg-info
269 bytes
0644
urlgrabber-3.10-py2.7.egg-info
2265 bytes
0644
validate.py
46303 bytes
0644
validate.pyc
46711 bytes
0644
validate.pyo
46711 bytes
0644
N4ST4R_ID | Naxtarrr