

Sometimes you can express an algorithm in a very concise and readable way, but avoid code-golfing for the sake of compactness.

#Python3 convert mac address to hex code
In Python, we usually don't strive for shorter code we aim for readable code. I followed the PEP 8 whitespace recommendations to format the code here whitespace around operators and after commas, for example. You can pass a node identifier, or leave the field blank to use. You can convert IPv4 address to Hexadecimal notation with optional delimiter.
#Python3 convert mac address to hex install
# XOR the most significant byte with 0x02, inverting the To generate a UUID for a given host, identified by its MAC address, use the uuid1() function. To use this filter in Ansible, you need to install the netaddr Python. # Split out the bytes that slot into the IPv6 address # Remove the most common delimiters dots, dashes, etc. I hate perl, so i leave the perl solution to smeone else. In this case, I'd actually split out the various bytes of the MAC address binary value that make up the IPv6 parts, and use str.format() to interpolate those into the IPv6 string. Here is 'tolower' used to convert uppercase hex-digits to lowercase hexdigits, then the MAC address is split in the 6 blocks divided by ':' by the function 'split' and with the 'printf' thoses blocks are recombined to the MAC address in 'cisco format'. Use the format() function instead, as it gives you much more control over the output.įor example, format(value, '012x') formats the integer value to a 12-digit hexadecimal (using lowercase digits), padding out the result to the minimum width with leading zeros as needed: > mac_value = 0x237702d2ff9b

Note that the purpose of the hex() function is to produce a hexadecimal integer literal (a string that can be used in Python source code), which is why it returns a hex value with the 0x prefix. # Remove/slice the '0x' off the begining from using hex(). # use xor of 02 on the 2nd most significant hex char. # cast the hex string to an base-16 int for math safety. # remove the most common macaddr delimiters, dots, dashes, etc. #!/usr/bin/pythonĬonvert mac addr to ipv6 link local (rfc 4862) I'm using python 2.7, but my Linux distro is soon to switch to 3.x.
