Advertisement
Guest User

Untitled

a guest
Jun 11th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. import random
  2. import timeit
  3.  
  4. def is_private_ip(bits):
  5.   return (bits[0] == 10 or
  6.           bits[0] == 192 and bits[1] == 168 or
  7.           bits[0] == 172 and 16 <= bits[1] < 32)
  8.  
  9. def gen_ip_1():
  10.     while True:
  11.         bits = [random.randrange(256) for _ in range(4)]
  12.         if not is_private_ip(bits):
  13.             break
  14.     return '.'.join(map(str, bits))
  15.  
  16. b0_range = [i for i in range(256) if i != 10]
  17. b1_172_range = [i for i in range(256) if not 16 <= i < 32]
  18. b1_192_range = [i for i in range(256) if i != 168]
  19. b_range = list(range(256))
  20.  
  21. def gen_ip_2():
  22.     b0 = b0_range[random.randrange(0, len(b0_range), 1)]
  23.     if b0 == 172:
  24.         b1 = b1_172_range[random.randrange(0, len(b1_172_range), 1)]
  25.     elif b0 == 192:
  26.         b1 = b1_192_range[random.randrange(0, len(b1_192_range), 1)]
  27.     else:
  28.         b1 = b_range[random.randrange(0, len(b_range), 1)]
  29.     b2 = b_range[random.randrange(0, len(b_range), 1)]
  30.     b3 = b_range[random.randrange(0, len(b_range), 1)]
  31.     return '.'.join(map(str, (b0, b1, b2, b3)))
  32.  
  33. def gen_ip_3():
  34.     b0 = random.choice(b0_range)
  35.     if b0 == 172:
  36.         b1 = random.choice(b1_172_range)
  37.     elif b0 == 192:
  38.         b1 = random.choice(b1_192_range)
  39.     else:
  40.         b1 = random.choice(b_range)
  41.     b2 = random.choice(b_range)
  42.     b3 = random.choice(b_range)
  43.     return '.'.join(map(str, (b0, b1, b2, b3)))
  44.  
  45. for f in gen_ip_1, gen_ip_2, gen_ip_3:
  46.     print('{}: {}'.format(f.__name__, timeit.timeit(f)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement