diff --git a/6to4_converter.py b/6to4_converter.py index a7cacf6..9acaa66 100644 --- a/6to4_converter.py +++ b/6to4_converter.py @@ -1,32 +1,45 @@ -ipv4Hex = '' -ipv6Hextet1 = '2002' -ipv6Hextet2 = '' -ipv6Hextet3 = '' +#!/usr/bin/env python3 -#take input -print('Enter IPv4 address:') -ipv4 = input() -#split input to octets -ipv4 = ipv4.split('.',4) +def get_ipv4_from_user(): + user_in = input("Enter IPv4 address: ") + return user_in -#convert IPv4 address to hex string -for octet in ipv4: - if len(hex(int(octet))[2:])>1: - ipv4Hex += hex(int(octet))[2:] - else: - ipv4Hex += '0' - ipv4Hex += hex(int(octet))[2:] -#split into hextets -for i in range(4): - ipv6Hextet2 += (ipv4Hex[i]) -for i in range(4,8): - ipv6Hextet3 += (ipv4Hex[i]) +def ipv4_to_ipv6(ipv4): + ipv4Hex = '' + ipv6Hextet1 = '2002' + ipv6Hextet2 = '' + ipv6Hextet3 = '' -#Convert to dec and back to remove leading zeros -ipv6Hextet2 = hex(int(ipv6Hextet2,16))[2:] -ipv6Hextet3 = hex(int(ipv6Hextet3,16))[2:] + # Split input to octets + ipv4 = ipv4.split('.',4) + + # Convert IPv4 address to hex string + for octet in ipv4: + if len(hex(int(octet))[2:])>1: + ipv4Hex += hex(int(octet))[2:] + else: + ipv4Hex += '0' + ipv4Hex += hex(int(octet))[2:] + + # Split into hextets + for i in range(4): + ipv6Hextet2 += (ipv4Hex[i]) + for i in range(4,8): + ipv6Hextet3 += (ipv4Hex[i]) + + # Convert to dec and back to remove leading zeros + ipv6Hextet2 = hex(int(ipv6Hextet2,16))[2:] + ipv6Hextet3 = hex(int(ipv6Hextet3,16))[2:] + + # Form 6to4 address + output_6to4 = f"{ipv6Hextet1}:{ipv6Hextet2}:{ipv6Hextet3}::/128" + return output_6to4 + + +def main(): + ipv4 = get_ipv4_from_user() + output = ipv4_to_ipv6(ipv4) + print(output) -#form and print 6to4 address -print(ipv6Hextet1+':'+ipv6Hextet2+':'+ipv6Hextet3+'::/128') \ No newline at end of file