summaryrefslogtreecommitdiff
path: root/dns/inet.py
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2005-09-02 05:21:28 +0000
committerBob Halley <halley@dnspython.org>2005-09-02 05:21:28 +0000
commitdf24d7e7fe18b2a4cd79c35d1c2efbb3e7ee5abc (patch)
tree3a987bc61f9847fb2d344d4d1fdbc56fa8f6bff9 /dns/inet.py
parent2ed5e08d4485c5df41f6f2ef3b04148ef10af1cb (diff)
downloaddnspython-df24d7e7fe18b2a4cd79c35d1c2efbb3e7ee5abc.tar.gz
initial import
Original author: Bob Halley <halley@dnspython.org> Date: 2004-03-23 21:57:40
Diffstat (limited to 'dns/inet.py')
-rw-r--r--dns/inet.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/dns/inet.py b/dns/inet.py
new file mode 100644
index 0000000..1cf246f
--- /dev/null
+++ b/dns/inet.py
@@ -0,0 +1,74 @@
+# Copyright (C) 2003, 2004 Nominum, Inc.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any purpose with or without fee is hereby granted,
+# provided that the above copyright notice and this permission notice
+# appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# $Id: inet.py,v 1.8 2004/03/19 00:17:27 halley Exp $
+
+"""Generic Internet address helper functions."""
+
+import socket
+
+import dns.ipv4
+import dns.ipv6
+
+
+# We assume that AF_INET is always defined.
+
+AF_INET = socket.AF_INET
+
+# AF_INET6 might not be defined in the socket module, but we need it.
+# We'll try to use the socket module's value, and if it doesn't work,
+# we'll use our own value.
+
+try:
+ AF_INET6 = socket.AF_INET6
+except AttributeError:
+ AF_INET6 = 9999
+
+def inet_pton(family, text):
+ """Convert the textual form of a network address into its binary form.
+
+ @param family: the address family
+ @type family: int
+ @param text: the textual address
+ @type text: string
+ @raises NotImplementedError: the address family specified is not
+ implemented.
+ @rtype: string
+ """
+
+ if family == AF_INET:
+ return dns.ipv4.inet_aton(text)
+ elif family == AF_INET6:
+ return dns.ipv6.inet_aton(text)
+ else:
+ raise NotImplementedError
+
+def inet_ntop(family, address):
+ """Convert the binary form of a network address into its textual form.
+
+ @param family: the address family
+ @type family: int
+ @param address: the binary address
+ @type address: string
+ @raises NotImplementedError: the address family specified is not
+ implemented.
+ @rtype: string
+ """
+ if family == AF_INET:
+ return dns.ipv4.inet_ntoa(address)
+ elif family == AF_INET6:
+ return dns.ipv6.inet_ntoa(address)
+ else:
+ raise NotImplementedError