DATA Step, Macro, Functions and more

Convert IP address to text

Occasional Learner
Posts: 1

Convert IP address to text


I'm a long time SAS user (since 1997) but this is my first time using this forum and submitting a request for an enhancement! 

I would like to take a 32 bit IPV4 or 128 bit IPV6 binary IP address and convert to text as dotted notation.  For example, an IPV4 is stored in binary as 4 bytes as x'0a0b0c01' and the text is up to 15 bytes  "".   While I don't have a requirement right now to go the other way, that may be useful as well (i.e., convert a char(15) field from back into a 4 byte binary).


The equivalent functions in unix are inet_ntop (numeric to presentation) and inet_pton (presentation to numeric). 


My goal right now is to read in a binary number and display it as dotted notation.  I can work out the SAS code to do this myself, but I really think a function or informat/format would be useful.  For example:


input @1 ipv4addr  pib4.

put @1 ipv4addr $ipv4.;


The length would be implied to be either char15 if IPV4 or char35 if IPV6.


A function would work too - whichever makes sense.


Thank you,

Mike Giaquinto

Principal Engineer

Wells Fargo






Esteemed Advisor
Posts: 5,541

Re: Convert IP address to text

You can write your own function or function-based format with proc FCMP and then use it just like any SAS function or SAS format in data steps and SQL.

Community Manager
Posts: 3,442

Re: Convert IP address to text

Here's an example that might help:


Using SAS to convert IP addresses into numerical IP values



Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation