CZMQ之ziflist简介和使用举例

CZeroMQ之ziflist用于获取系统上可用的网络接口API(list of network interfaces available on system)

一、Ziflist API如下:

<span style="font-size:14px;">//  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);</span>


二、使用举例

1、zifnet.c

#include<czmq.h>
#include<stdio.h>
int main()
{
        int verbose = 1;
        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);

        return 0;
}

2、编译

[root@localhost chiutest]# gcc -o zifnet zifnet.c -lzmq -lczmq
[root@localhost chiutest]#


3、运行测试

[root@localhost chiutest]# ./zifnet
ziflist: interfaces=2
 - name=eth0 address=192.168.1.110 netmask=255.255.255.0 broadcast=192.168.1.255
 - name=virbr0 address=192.168.122.1 netmask=255.255.255.0 broadcast=192.168.122.255
[root@localhost chiutest]#



更多文章请查看:http://blog.csdn.net/yuesichiu

欢迎转载,转载请注明出处




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值