1
votes

How can I treat a string which is a hexadecimal number as a hexadecimal number? For example, I am loading in a file of hexadecimal numbers but Python is loading the file in as a string. Is it possible to get Powershell to treat the hexadecimal numbers in the file as hexadecimal numbers?

Background: I'm asking the user for a Mac Address and I need to add x numbers to the last block to get the next x Mac addresses. I can split on ":" and get the last block but this is a string containing for example "13", which is not 13 decimal but 13 hex.

3

3 Answers

1
votes

Try converting it first to an int by casting the variable with the base 16 as the second argument

hex_str = "0xAD4"
hex_int = int(hex_str, 16)

then just add 1 to the result and use

hex(hex_int)

to get the result back to hex format

1
votes

Just the whole MAC address in once by using the PhysicalAddress.Parse(String) Method:

$MAC = 'F0:E1:D2:C3:B4:A5' -Replace '[^0-9a-fA-F]' # remove all the non-Hex characters
[System.Net.NetworkInformation.PhysicalAddress]::Parse($MAC).GetAddressBytes()
240
225
210
195
180
165
0
votes

Solved it by doing it like this:

$MacNr = ([int64]"0x$($MacAddress.Split(":")[5])")
$MacNr ++1
$NewMac = ('{0:X2}' -f $MacNr)