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

  • 相关阅读:
    这个夏天,感动我的歌,感动我的你
    设计中最困难的部分在于决定要设计什么 设计原本择录
    Sql效能优化总结(续) sql语句优化篇
    sql效能优化总结
    使用AStyle进行代码格式化
    迭代模型 转
    软件项目开发系列开篇杂谈
    Sql效能优化总结(续) 架构调整篇
    throw和throw ex的区别
    面向过程&面向对象 UML&RUP
  • 原文地址:https://www.cnblogs.com/huacw/p/3584270.html
Copyright © 2011-2022 走看看