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

  • 相关阅读:
    ACE-6.1.0 linux 下的编译与安装步骤
    tcp_sync_server and tcp_sync_client
    网络服务器操作命令telnet
    eclipse CDT unresolved inclusion
    qt安装--this Qt version uses an unsupported makefile
    java指令详解
    (8) tomcat中管理领域、角色及用户
    (7) 将tomcat HTTP连接器启动在80端口(jsvc使用详解)
    10月16日面试总结
    MYSQL查询的四种情况
  • 原文地址:https://www.cnblogs.com/huacw/p/3584270.html
Copyright © 2011-2022 走看看