ziflist man page

ziflist — list of network interfaces available on system

Synopsis

//  This is a stable class, and may not change except for emergencies. It
//  is provided in stable builds.
//  Get a list of network interfaces currently defined on the system
CZMQ_EXPORT ziflist_t *
    ziflist_new (void);

//  Destroy a ziflist instance
CZMQ_EXPORT void
    ziflist_destroy (ziflist_t **self_p);

//  Reload network interfaces from system
CZMQ_EXPORT void
    ziflist_reload (ziflist_t *self);

//  Return the number of network interfaces on system
CZMQ_EXPORT size_t
    ziflist_size (ziflist_t *self);

//  Get first network interface, return NULL if there are none
CZMQ_EXPORT const char *
    ziflist_first (ziflist_t *self);

//  Get next network interface, return NULL if we hit the last one
CZMQ_EXPORT const char *
    ziflist_next (ziflist_t *self);

//  Return the current interface IP address as a printable string
CZMQ_EXPORT const char *
    ziflist_address (ziflist_t *self);

//  Return the current interface broadcast address as a printable string
CZMQ_EXPORT const char *
    ziflist_broadcast (ziflist_t *self);

//  Return the current interface network mask as a printable string
CZMQ_EXPORT const char *
    ziflist_netmask (ziflist_t *self);

//  Return the list of interfaces.
CZMQ_EXPORT void
    ziflist_print (ziflist_t *self);

//  Self test of this class.
CZMQ_EXPORT void
    ziflist_test (bool verbose);

Description

The ziflist class takes a snapshot of the network interfaces that the system currently supports (this can change arbitrarily, especially on mobile devices). The caller can then access the network interface information using an iterator that works like zlistx. Only stores those interfaces with broadcast capability, and ignores the loopback interface.

Please add @discuss section in ../src/ziflist.c.

Example

From ziflist_test method.

ziflist_t *iflist = ziflist_new ();
assert (iflist);

size_t items = ziflist_size (iflist);

if (verbose) {
    printf ("ziflist: interfaces=%zu\n", ziflist_size (iflist));
    const char *name = ziflist_first (iflist);
    while (name) {
        printf (" - name=%s address=%s netmask=%s broadcast=%s\n",
                name, ziflist_address (iflist), ziflist_netmask (iflist), ziflist_broadcast (iflist));
        name = ziflist_next (iflist);
    }
}
ziflist_reload (iflist);
assert (items == ziflist_size (iflist));
ziflist_destroy (&iflist);

Authors

The czmq manual was written by the authors in the Authors file.

Resources

Main web site:

Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>

Notes

1.

zeromq-dev@lists.zeromq.org

mailto:zeromq-dev@lists.zeromq.org

Referenced By

czmq(7).

11/11/2016 CZMQ 4.0.1 CZMQ Manual