ipaddr

IP Address Parsing and Manipulation

Functions

FunctionDescription
ip_from_octetsBuild IP from 4 octets.
ip_octetGet octet n (0=first/MSB, 3=last/LSB).
ip_parseParse “a.b.c.d” string to integer.
ip_write_intInternal: write integer digits to buffer, return length.
ip_formatFormat integer IP to “a.b.c.d” string. Returns length.
ip_is_privateIs this a private (RFC 1918) address?
ip_is_loopbackIs this a loopback address?
ip_is_multicastIs this a multicast address?
ip_maskInternal: create subnet mask from prefix length.
ip_networkNetwork address for addr/prefix.
ip_broadcastBroadcast address for addr/prefix.
ip_in_subnetCheck if addr is within network/prefix.
ip_to_sockaddrWrite struct sockaddr_in (16 bytes) to dst for use with connect/bind. AF_INET…

Details

ip_from_octets

fn ip_from_octets(a: i64, b: i64, c: i64, d: i64) -> i64

Build IP from 4 octets.

ip_octet

fn ip_octet(addr: i64, n: i64) -> i64

Get octet n (0=first/MSB, 3=last/LSB).

ip_parse

fn ip_parse(src: &i8, len: i64) -> i64

Parse “a.b.c.d” string to integer.

ip_write_int

fn ip_write_int(val: i64, dst: &i8, off: i64) -> i64

Internal: write integer digits to buffer, return length.

ip_format

fn ip_format(addr: i64, dst: &i8) -> i64

Format integer IP to “a.b.c.d” string. Returns length.

ip_is_private

fn ip_is_private(addr: i64) -> i64

Is this a private (RFC 1918) address?

ip_is_loopback

fn ip_is_loopback(addr: i64) -> i64

Is this a loopback address?

ip_is_multicast

fn ip_is_multicast(addr: i64) -> i64

Is this a multicast address?

ip_mask

fn ip_mask(prefix: i64) -> i64

Internal: create subnet mask from prefix length.

ip_network

fn ip_network(addr: i64, prefix: i64) -> i64

Network address for addr/prefix.

ip_broadcast

fn ip_broadcast(addr: i64, prefix: i64) -> i64

Broadcast address for addr/prefix.

ip_in_subnet

fn ip_in_subnet(addr: i64, net: i64, prefix: i64) -> i64

Check if addr is within network/prefix.

ip_to_sockaddr

fn ip_to_sockaddr(addr: i64, port: i64, dst: &i8) -> i64

Write struct sockaddr_in (16 bytes) to dst for use with connect/bind. AF_INET=2, port in network byte order.