ISO_ADDR(3)

NAME
iso_addr, iso_ntoa - elementary network address conversion routines for Open System Interconnection

SYNOPSIS
#include <sys/types.h>
#include <netiso/iso.h>
struct iso_addr *
iso_addr(const char *cp);
char *
iso_ntoa(struct iso_addr *isoa);

DESCRIPTION
The routine iso_addr() interprets character strings representing OSI addresses, returning binary information suitable for use in system calls. The routine iso_ntoa() takes OSI addresses and returns ASCII strings representing NSAPs (network service access points) in a notation inverse to that accepted by iso_addr().

Unfortunately, no universal standard exists for representing OSI network addresses.

The format employed by iso_addr() is a sequence of hexadecimal “digits” (optionally separated by periods), of the form:

<hex digits>.<hex digits>.<hex digits>

Each pair of hexadecimal digits represents a byte with the leading digit indicating the higher-ordered bits. A period following an even number of bytes has no effect (but may be used to increase legibility). A period following an odd number of bytes has the effect of causing the byte of address being translated to have its higher order bits filled with zeros.

RETURN VALUES
iso_ntoa() always returns a null terminated string. iso_addr() always returns a pointer to a struct iso_addr. (See BUGS.)

SEE ALSO
iso(4)

HISTORY
The iso_addr() and iso_ntoa() functions appeared in 4.3BSD Reno.

BUGS
The returned values reside in a static memory area.

The function iso_addr() should diagnose improperly formed input, and there should be an unambiguous way to recognize this.