---
name: "ipx"
section: "3"
platform: "linux"
package: "libipx-dev"
version: "10.3~svn296373-10"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/ipx"
---

# ipx(3)

IPX address conversion routines

## NAME

**ipx\_addr**, **ipx\_ntoa** – IPX address conversion routines

## LIBRARY

library “libipx”

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<netipx/ipx.h\>**

*struct* *ipx\_addr*\

**ipx\_addr**(*const char \*cp*);

*char* *\**\

**ipx\_ntoa**(*struct ipx\_addr ipx*);

## DESCRIPTION

The routine **ipx\_addr**() interprets character strings representing IPX addresses, returning binary information suitable for use in system calls. The routine **ipx\_ntoa**() takes IPX addresses and returns ASCII strings representing the address in a notation in common use:

\<network number\>.\<host number\>.\<port number\>

Trailing zero fields are suppressed, and each number is printed in hexadecimal, in a format suitable for input to **ipx\_addr**(). Any fields lacking super-decimal digits will have a trailing ‘H’ appended.

An effort has been made to ensure that **ipx\_addr**() be compatible with most formats in common use. It will first separate an address into 1 to 3 fields using a single delimiter chosen from period ‘.’, colon ‘:’ or pound-sign ‘#’. Each field is then examined for byte separators (colon or period). If there are byte separators, each subfield separated is taken to be a small hexadecimal number, and the entirety is taken as a network-byte-ordered quantity to be zero extended in the high-network-order bytes. Next, the field is inspected for hyphens, in which case the field is assumed to be a number in decimal notation with hyphens separating the millennia. Next, the field is assumed to be a number: It is interpreted as hexadecimal if there is a leading ‘0x’ (as in C), a trailing ‘H’ (as in Mesa), or there are any super-decimal digits present. It is interpreted as octal if there is a leading ‘0’ and there are no super-octal digits. Otherwise, it is converted as a decimal number.

## RETURN VALUES

None. (See BUGS.)

## SEE ALSO

[hosts(5)](/hosts/5.md), [networks(5)](/networks/5.md)

## HISTORY

The precursor **ns\_addr**() and **ns\_toa**() functions appeared in 4.3BSD.

## BUGS

The string returned by **ipx\_ntoa**() resides in a static memory area. The function **ipx\_addr**() should diagnose improperly formed input, and there should be an unambiguous way to recognize this.
