Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import timeit
- def is_private_ip(bits):
- return (bits[0] == 10 or
- bits[0] == 192 and bits[1] == 168 or
- bits[0] == 172 and 16 <= bits[1] < 32)
- def gen_ip_1():
- while True:
- bits = [random.randrange(256) for _ in range(4)]
- if not is_private_ip(bits):
- break
- return '.'.join(map(str, bits))
- b0_range = [i for i in range(256) if i != 10]
- b1_172_range = [i for i in range(256) if not 16 <= i < 32]
- b1_192_range = [i for i in range(256) if i != 168]
- b_range = list(range(256))
- def gen_ip_2():
- b0 = b0_range[random.randrange(0, len(b0_range), 1)]
- if b0 == 172:
- b1 = b1_172_range[random.randrange(0, len(b1_172_range), 1)]
- elif b0 == 192:
- b1 = b1_192_range[random.randrange(0, len(b1_192_range), 1)]
- else:
- b1 = b_range[random.randrange(0, len(b_range), 1)]
- b2 = b_range[random.randrange(0, len(b_range), 1)]
- b3 = b_range[random.randrange(0, len(b_range), 1)]
- return '.'.join(map(str, (b0, b1, b2, b3)))
- def gen_ip_3():
- b0 = random.choice(b0_range)
- if b0 == 172:
- b1 = random.choice(b1_172_range)
- elif b0 == 192:
- b1 = random.choice(b1_192_range)
- else:
- b1 = random.choice(b_range)
- b2 = random.choice(b_range)
- b3 = random.choice(b_range)
- return '.'.join(map(str, (b0, b1, b2, b3)))
- for f in gen_ip_1, gen_ip_2, gen_ip_3:
- print('{}: {}'.format(f.__name__, timeit.timeit(f)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement