MCPcopy Index your code
hub / github.com/retspen/webvirtcloud / reverseNames

Method reverseNames

vrtManager/IPy.py:742–793  ·  view source on GitHub ↗

Return a list with values forming the reverse lookup. >>> IP('213.221.113.87/32').reverseNames() ['87.113.221.213.in-addr.arpa.'] >>> IP('213.221.112.224/30').reverseNames() ['224.112.221.213.in-addr.arpa.', '225.112.221.213.in-addr.arpa.', '226.112.221.213.in-addr.a

(self)

Source from the content-addressed store, hash-verified

740
741
742 def reverseNames(self):
743 """Return a list with values forming the reverse lookup.
744
745 >>> IP('213.221.113.87/32').reverseNames()
746 ['87.113.221.213.in-addr.arpa.']
747 >>> IP('213.221.112.224/30').reverseNames()
748 ['224.112.221.213.in-addr.arpa.', '225.112.221.213.in-addr.arpa.', '226.112.221.213.in-addr.arpa.', '227.112.221.213.in-addr.arpa.']
749 >>> IP('127.0.0.0/24').reverseNames()
750 ['0.0.127.in-addr.arpa.']
751 >>> IP('127.0.0.0/23').reverseNames()
752 ['0.0.127.in-addr.arpa.', '1.0.127.in-addr.arpa.']
753 >>> IP('127.0.0.0/16').reverseNames()
754 ['0.127.in-addr.arpa.']
755 >>> IP('127.0.0.0/15').reverseNames()
756 ['0.127.in-addr.arpa.', '1.127.in-addr.arpa.']
757 >>> IP('128.0.0.0/8').reverseNames()
758 ['128.in-addr.arpa.']
759 >>> IP('128.0.0.0/7').reverseNames()
760 ['128.in-addr.arpa.', '129.in-addr.arpa.']
761 >>> IP('::1:2').reverseNames()
762 ['2.0.0.0.1.ip6.arpa.']
763 """
764
765 if self._ipversion == 4:
766 ret = []
767 # TODO: Refactor. Add support for IPint objects
768 if self.len() < 2 ** 8:
769 for x in self:
770 ret.append(x.reverseName())
771 elif self.len() < 2 ** 16L:
772 for i in range(0, self.len(), 2 ** 8):
773 ret.append(self[i].reverseName()[2:])
774 elif self.len() < 2 ** 24L:
775 for i in range(0, self.len(), 2 ** 16):
776 ret.append(self[i].reverseName()[4:])
777 else:
778 for i in range(0, self.len(), 2 ** 24):
779 ret.append(self[i].reverseName()[6:])
780 return ret
781 elif self._ipversion == 6:
782 s = hex(self.ip)[2:].lower()
783 if s[-1] == 'l':
784 s = s[:-1]
785 if self._prefixlen % 4 != 0:
786 raise NotImplementedError, "can't create IPv6 reverse names at sub nibble level"
787 s = list(s)
788 s.reverse()
789 s = '.'.join(s)
790 first_nibble_index = int(32 - (self._prefixlen / 4)) * 2
791 return ["%s.ip6.arpa." % s[first_nibble_index:]]
792 else:
793 raise ValueError, "only IPv4 and IPv6 supported"
794
795
796 def reverseName(self):

Callers

nothing calls this directly

Calls 2

lenMethod · 0.80
reverseNameMethod · 0.80

Tested by

no test coverage detected