Class for handling IP addresses and networks.
| 708 | |
| 709 | |
| 710 | class IP(IPint): |
| 711 | """Class for handling IP addresses and networks.""" |
| 712 | |
| 713 | def net(self): |
| 714 | """Return the base (first) address of a network as an IP object. |
| 715 | |
| 716 | The same as IP[0]. |
| 717 | |
| 718 | >>> IP('10.0.0.0/8').net() |
| 719 | IP('10.0.0.0') |
| 720 | """ |
| 721 | return IP(IPint.net(self), ipversion=self._ipversion) |
| 722 | |
| 723 | def broadcast(self): |
| 724 | """Return the broadcast (last) address of a network as an IP object. |
| 725 | |
| 726 | The same as IP[-1]. |
| 727 | |
| 728 | >>> IP('10.0.0.0/8').broadcast() |
| 729 | IP('10.255.255.255') |
| 730 | """ |
| 731 | return IP(IPint.broadcast(self)) |
| 732 | |
| 733 | def netmask(self): |
| 734 | """Return netmask as an IP object. |
| 735 | |
| 736 | >>> IP('10.0.0.0/8').netmask() |
| 737 | IP('255.0.0.0') |
| 738 | """ |
| 739 | return IP(IPint.netmask(self)) |
| 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 |
no outgoing calls
no test coverage detected