def ip_d2a(ipdec):
ip1 = (ipdec >> 24) & 255;
ip2 = (ipdec >> 16) & 255;
ip3 = (ipdec >> 8) & 255;
ip4 = ipdec & 255;
return "%d.%d.%d.%d" % (ip1, ip2, ip3, ip4);
#
def ipToNetAndHost(ip_str, mask_cidr):
"returns tuple ((network_itn, network_str), (broadcast_int, broadcast_str))"
l = ip_str.split('.');
for i in range( len(l) ): l[i] = int(l[i]);
ip_int = (l[0] << 24) + (l[1] << 16) + (l[2] << 8) + l[3];
mask_int = (~0 << (32 - mask_cidr));
net_int = (ip_int & mask_int);
net_str = ip_d2a(net_int); #print "(DBG) network: [%s] [%d]" % (net_str, net_int);
brdcast_int = (net_int | ~(mask_int));
brdcast_str = ip_d2a(brdcast_int); #print "(DBG) broadcast: [%s] [%d]" % (brdcast_str, brdcast_int);
return ((net_int, net_str), (brdcast_int, brdcast_str));
#
"""
import random
subNetList = ['10.0.2.0/23']
subNetList_2 = [];
for s in subNetList:
l = s.split('/');
t = ipToNetAndHost(l[0], int(l[1]));
subNetList_2.append(t);
#
subNetList_2_Size = len(subNetList_2) - 1;
while <...>:
l = "....".split("....");
# Changes srcAddr AND dstAddr
t = subNetList_2[ random.randint(0, subNetList_2_Size) ];
l[1] = random.randint(t[0][0] + 1, t[1][0] - 1); #excludes network and broadcast
l[2] = random.randint(t[0][0] + 1, t[1][0] - 1);
while(l[2] == l[1]): l[2] = random.randint(t[0][0] + 1, t[1][0] - 1);
l[1] = ip_d2a(l[1]);
l[2] = ip_d2a(l[2]);
"""
Diff to Previous Revision
--- revision 1 2010-08-25 21:32:42
+++ revision 2 2010-08-25 21:37:16
@@ -38,7 +38,7 @@
subNetList_2_Size = len(subNetList_2) - 1;
while <...>:
- l = "....",split("....");
+ l = "....".split("....");
# Changes srcAddr AND dstAddr
t = subNetList_2[ random.randint(0, subNetList_2_Size) ];