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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

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
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors