zoukankan      html  css  js  c++  java
  • Linux中获取本机网络信息的几个函数及应用

    一、读取/etc/hosts 几个函数

    头文件<netdb.h>

    1.void sethostent(int stayopen);//开打/etc/hosts 配置文件

    2.struct hostent * gethostent(void);//读取配置文件

    3.void  enthostent(void);//关闭 /etc/hosts 文件

    二、读取/etc/protocols文件的几个函数

    1.struct protoent *getprotobyname(cosnt char *name);

     struct protent

    {

      char *p_name;

      char **p_aliases;

        int  p_proto;

      

    }  

    #include <stdio.h>
    #include <netdb.h>
    #include <sys/utsname.h>
    main()
    {
            printf("============获取host信息====================
    ");
            struct hostent *ent;
            /*打开主机配置数据文件*/
            sethostent(1);
            while(1)
            {
                    ent=gethostent();
                    if(ent==0)break;
                    printf("主机名:%s	",ent->h_name);
                    printf("IP地址:%hhu.%hhu.%hhu.%hhu	",ent->h_addr[0],ent->h_addr[1],ent->h_addr[2],ent->h_addr[3]);
                    printf("别名:%s
    ",ent->h_aliases[0]);
            }
            endhostent();
            //获取本机信息
            printf("==============获取本机信息==================
    ");
            struct protoent *ent2;
            struct utsname name;
            ent2=getprotobyname("tcp");
            printf("proto:%d
    ",ent2->p_proto);
            uname(&name);
            printf("machine:%s
    ",name.machine);
            printf("nodename:%s
    ",name.nodename);
            printf("sysname:%s
    ",name.sysname);
            //通过域名获取IP
            printf("========通过域名获取IP=====================
    ");
            struct hostent *ent3;
            ent3=gethostbyname("www.baidu.com");
            printf("%hhu.%hhu.%hhu.%hhu
    ",ent3->h_addr_list[0][0],ent3->h_addr_list[0][1],ent3->h_addr_list[0][2],ent3->h_addr_list[0][3]);
    }

    ============获取host信息====================
    主机名:localhost IP地址:127.0.0.1 别名:localhost.localdomain
    主机名:localhost IP地址:127.0.0.1 别名:localhost.localdomain
    ==============获取本机信息==================
    proto:6
    machine:x86_64
    nodename:localhost.localdomain
    sysname:Linux
    ========通过域名获取IP=====================
    115.239.210.26
    [root@localhost day09]#

  • 相关阅读:
    $scope.$watch监听
    git 修改地址,及提交返回403错误原因
    wepy wx:getLocation 配置 permission
    vue-cli 3.x 导入jquety
    微信小程序、微信公众号、H5之间相互跳转
    微信小程序之滚动选择器
    软件开发过程中所需要的文档
    Git 常用命令详解
    小程序填坑--TypeError: this.setData is not a function
    使用tomcat时,不用给webapps文件放入文件,直接访问项目方法
  • 原文地址:https://www.cnblogs.com/huacw/p/3584270.html
Copyright © 2011-2022 走看看