Ticket #14: WIP, only intra-PL TUN connections, required groundwork for cross-backend...
[nepi.git] / src / nepi / util / ipaddr2.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import struct
4
5 def ipv4_dot2mask(mask):
6     mask = mask.split('.',4) # a.b.c.d -> [a,b,c,d]
7     mask = map(int,mask) # to ints
8     
9     n = 0
10     while mask and mask[0] == 0xff:
11         n += 8
12         del mask[0]
13     
14     if mask:
15         mask = mask[0]
16         while mask:
17             n += 1
18             mask = (mask << 1) & 0xff
19     
20     return n
21
22 def ipv4_mask2dot(mask):
23     mask = ((1L << mask)-1) << (32 - mask)
24     mask = struct.pack(">I",mask)
25     mask = '.'.join(map(str,map(ord,mask)))
26     return mask
27