Return netmask as an string. Mostly useful for IPv6. >>> print IP('195.185.0.0/16').strNetmask() 255.255.0.0 >>> print IP('2001:0658:022a:cafe::0/64').strNetmask() /64
(self)
| 471 | |
| 472 | |
| 473 | def strNetmask(self): |
| 474 | """Return netmask as an string. Mostly useful for IPv6. |
| 475 | |
| 476 | >>> print IP('195.185.0.0/16').strNetmask() |
| 477 | 255.255.0.0 |
| 478 | >>> print IP('2001:0658:022a:cafe::0/64').strNetmask() |
| 479 | /64 |
| 480 | """ |
| 481 | |
| 482 | # TODO: unify with prefixlenToNetmask? |
| 483 | if self._ipversion == 4: |
| 484 | locallen = 32 - self._prefixlen |
| 485 | return intToIp(((2L ** self._prefixlen) - 1) << locallen, 4) |
| 486 | elif self._ipversion == 6: |
| 487 | locallen = 128 - self._prefixlen |
| 488 | return "/%d" % self._prefixlen |
| 489 | else: |
| 490 | raise ValueError, "only IPv4 and IPv6 supported" |
| 491 | |
| 492 | def len(self): |
| 493 | """Return the length of a subnet. |
no test coverage detected