加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Linux C 获取本机相关信息

发布时间:2020-12-16 07:44:09 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /**@Abstract getHostInformation*/ #include stdio.h#include stdlib.h#include netdb.h#include arpa/inet.h #define NET_ADDR_STR_LEN 16 //16个字

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

/*
*@Abstract getHostInformation
*/
 
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <arpa/inet.h>
 
#define NET_ADDR_STR_LEN 16     //16个字节,用于存放点分十进制IP地址的字符串长度
 
int main(int argc,char **argv)
{
    struct hostent *host;   //存放主机信息
    char addr_p[NET_ADDR_STR_LEN]; //用于存放点分十进制IP地址的字符串
    int i;
    if((host = gethostent()) == NULL)
    {
        perror("fail to get host's informationn");
        exit(1);
    }
    printf("hostName: %sn",host->h_name);
    for(i = 0 ; host->h_aliases[i] != NULL;i++)
    {
        printf("%sn",host->h_aliases[i]);     //主机别名列表,可以又很多,以二维数组形式存储   h_aliases[0] 为主机IP
    }
    if(host->h_addrtype == AF_INET)      //判断IP类型是否是ipv4
    {
        printf("at_inetn");
    }
    else
    {
        printf("unix_inetn");
    }
    printf("len%dn",host->h_length);    //地址长度
    for(i = 0 ; host->h_addr_list[i] != NULL ; i++)
    {
        //该地址以二进制形式存储,转换为字符串的形式
        printf("%sn",inet_ntop(host->h_addrtype,host->h_addr_list[i],addr_p,NET_ADDR_STR_LEN));      //打印主机IP地址
    }
    return 0;
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读