import random import struct import socket class stringandip (object): def __init__(self): pass def ipv4(self,m, n, x): if m == '-1': m = random.randint(0, 255) if n == '-1': n = random.randint(0, 255) if x == '-1': x = random.randint(0, 255) y = random.randint(0, 255) print(str(m) + '.' + str(n) + '.' + str(x) + '.' + str(y)) return str(m) + '.' + str(n) + '.' + str(x) + '.' + str(y) def dec2hex(self,string_num): base = [str(x) for x in range(10)] + [chr(x) for x in range(ord('A'), ord('A') + 6)] num = int(string_num) mid = [] while True: if num == 0: break num, rem = divmod(num, 16) mid.append(base[rem]) return ''.join([str(x) for x in mid[::-1]]) def ipv6(self): ipInt = random.randint(0, 400000000000000000000000000000000000) ipStr = '' leftValue = ipInt for i in [7, 6, 5, 4, 3, 2, 1, 0]: string_num = leftValue / 65536 ** i base = [str(x) for x in range(10)] + [chr(x) for x in range(ord('A'), ord('A') + 6)] num = int(string_num) mid = [] while True: if num == 0: break num, rem = divmod(num, 16) mid.append(base[rem]) ipTokenInt = ''.join([str(x) for x in mid[::-1]]) if (ipTokenInt == ''): ipTokenInt = 0 ipStr = ipStr + str(ipTokenInt) if i != 0: ipStr = ipStr + ':' leftValue %= 65536 ** i print(ipStr) return ipStr def getstring(self,randomlength=16,base_str='ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'): """ 生成一个指定长度的随机字符串 """ random_str = '' #base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789' length = len(base_str) - 1 for i in range(randomlength): random_str += base_str[random.randint(0, length)] print(random_str) return random_str # if __name__ == '__main__': # ipandstring = ipandstring() # print(ipandstring.ipv6())