Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZIFLIST(3)			   CZMQ Manual			      ZIFLIST(3)

NAME
     ziflist - Class for 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.
     //  This class has draft methods, which may change over time. They are not
     //  in stable releases, by default. Use --enable-drafts to enable.
     //  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);

     #ifdef CZMQ_BUILD_DRAFT_API
     //  *** Draft method, for development use, may change without warning ***
     //  Get a list of network interfaces currently defined on the system
     //  Includes IPv6 interfaces
     //  Caller owns return value and must destroy it when done.
     CZMQ_EXPORT ziflist_t *
	 ziflist_new_ipv6 (void);

     //  *** Draft method, for development use, may change without warning ***
     //  Reload network interfaces from system, including IPv6
     CZMQ_EXPORT void
	 ziflist_reload_ipv6 (ziflist_t *self);

     //  *** Draft method, for development use, may change without warning ***
     //  Return true if the current interface uses IPv6
     CZMQ_EXPORT bool
	 ziflist_is_ipv6 (ziflist_t *self);

     #endif // CZMQ_BUILD_DRAFT_API
     Please add '@interface' section in './../src/ziflist.c'.

DESCRIPTION
     The  ziflist class takes a snapshot of the network interfaces that the sys-
     tem currently supports (this can change arbitrarily, especially  on  mobile
     devices).	The caller can then access the network interface information us-
     ing 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);

	 #if defined (__WINDOWS__)
	 zsys_shutdown();
	 #endif

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]>

COPYRIGHT
     Copyright	(c)  the Contributors as noted in the AUTHORS file. This file is
     part of CZMQ, the high-level C  binding  for  0MQ:  http://czmq.zeromq.org.
     This  Source  Code  Form  is subject to the terms of the Mozilla Public Li-
     cense, v. 2.0. If a copy of the MPL was not distributed with this file, You
     can obtain one at http://mozilla.org/MPL/2.0/. LICENSE  included  with  the
     czmq distribution.

NOTES
      1. zeromq-dev@lists.zeromq.org
	 mailto:zeromq-dev@lists.zeromq.org

CZMQ 4.2.1			   08/27/2026			      ZIFLIST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ziflist&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help