Ejemplo n.º 1
0
	def __mask_to_binary(self, mask, length):
		if "." in mask:
			pass
		elif cross_version.isnumeric(mask):
			mask = int(mask)
			bin_mask = 0b0
			
			for i in range(mask):
				bin_mask = bin_mask << 1
				bin_mask = 0b1 | bin_mask
			
			for i in range(length - mask):
				bin_mask = bin_mask << 1
			
			return bin_mask
		else:
			raise ValueError("Invalid mask")
Ejemplo n.º 2
0
	def __address_to_binary(self, address):
		
		bin_addr = 0b0
		
		if "." in address:
			bin_addr = 0b0
			
			addr_list = address.split(".")
			for block in addr_list:
				if cross_version.isnumeric(block):
					block = int(block)
					bin_addr = bin_addr << 8
					bin_addr = bin_addr | block
				else:
					raise ValueError("Invalid IPv4 address")
			
			return bin_addr
			
		elif ":" in address:
			
			addr_split = address.split(":")
			
			if addr_split[0] == "" and addr_split[1] == "":
				del addr_split[0]
			
			if addr_split.count("") > 1:
				raise ValueError("Invalid IPv6 address")
			elif len(addr_split) - 1 < 8 and addr_split.count("") == 1:
				insert_count = 8 - len(addr_split)
				for i in range(insert_count + 1):
					addr_split.insert(addr_split.index(""), "0")
				
				addr_split.remove("")
			elif len(addr_split) < 8:
				raise ValueError("Invalid IPv6 address")
			
			for block in addr_split:
				block = int(block, 16)
				bin_addr = bin_addr << 16
				bin_addr = bin_addr | block
		
			
			return bin_addr
		else:
			raise ValueError("Invalid address")
Ejemplo n.º 3
0
def isnumeric_tests():
    assert cross_version.isnumeric("hi there") == False
    assert cross_version.isnumeric("1") == True
    assert cross_version.isnumeric(1) == True
    assert cross_version.isnumeric(1.01) == False
    assert cross_version.isnumeric({1: 2}) == False
def isnumeric_tests():
	assert cross_version.isnumeric("hi there") == False
	assert cross_version.isnumeric("1") == True
	assert cross_version.isnumeric(1) == True
	assert cross_version.isnumeric(1.01) == False
	assert cross_version.isnumeric({1: 2}) == False