Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
amedrano
New Member

Convert hexadecimal ip address to decimal dotted from TMG

Hello, 

 

I am looking for a way to convert the column ClientIP from TMG database into a legible IP address, the value is in the format:

 

C0A8019A-ffff-0000-0000-000000000000

 

the first 8 characters are the ip address in hexadecimal: 

 

C0A8019A = 192.168.1.154

 

C0 = 192

A8 = 168

01 = 1

9A = 154

 

thanks

1 ACCEPTED SOLUTION
MarcelBeug
Community Champion
Community Champion

A Power Query solution:

 

let
    HexDigits ="0123456789ABCDEF",
    Source = #table(type table[ClientIP = text],{{"C0A8019A-ffff-0000-0000-000000000000"}}),
    First8Characters = Table.AddColumn(Source, "IP Address", each Text.Start([ClientIP], 8), type text),
    SplittedIntoPairs = Table.TransformColumns(First8Characters, {{"IP Address", Splitter.SplitTextByRepeatedLengths(2)}}),
    SplittedEachPair = Table.TransformColumns(SplittedIntoPairs,{{"IP Address", each List.Transform(_, Text.ToList)}}),
    HexToDec = Table.TransformColumns(SplittedEachPair,{{"IP Address", each List.Transform(_, each 16*Text.PositionOf(HexDigits,_{0})+Text.PositionOf(HexDigits,_{1}))}}),
    PartsCombined = Table.TransformColumns(HexToDec,{{"IP Address", each Text.Combine(List.Transform(_, Text.From),"."), type text}})
in
    PartsCombined
Specializing in Power Query Formula Language (M)

View solution in original post

1 REPLY 1
MarcelBeug
Community Champion
Community Champion

A Power Query solution:

 

let
    HexDigits ="0123456789ABCDEF",
    Source = #table(type table[ClientIP = text],{{"C0A8019A-ffff-0000-0000-000000000000"}}),
    First8Characters = Table.AddColumn(Source, "IP Address", each Text.Start([ClientIP], 8), type text),
    SplittedIntoPairs = Table.TransformColumns(First8Characters, {{"IP Address", Splitter.SplitTextByRepeatedLengths(2)}}),
    SplittedEachPair = Table.TransformColumns(SplittedIntoPairs,{{"IP Address", each List.Transform(_, Text.ToList)}}),
    HexToDec = Table.TransformColumns(SplittedEachPair,{{"IP Address", each List.Transform(_, each 16*Text.PositionOf(HexDigits,_{0})+Text.PositionOf(HexDigits,_{1}))}}),
    PartsCombined = Table.TransformColumns(HexToDec,{{"IP Address", each Text.Combine(List.Transform(_, Text.From),"."), type text}})
in
    PartsCombined
Specializing in Power Query Formula Language (M)

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.