Linux中获取本机网络信息的几个函数及应用

摘要:
1、 读取/etc/hosts<netdb的几个函数头文件。h˃ 1.voisethost(intstayopen)//打开/etc/hosts配置文件2。structhost*gethost(void)//读取配置文件3。vointhost(void)//关闭/etc/hosts文件2。读取/etc/protocols文件1的几个功能。结构化协议*

一、读取/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]#

免责声明:文章转载自《Linux中获取本机网络信息的几个函数及应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.10-浅析webpack源码之graceful-fs模块12.2 pyspider 的基本使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Deepin V20编译vim8.2

前言 deepin v20版本,自带的vim8.1版本,不能满足coc.nvim的最低使用要求(不支持浮动窗口),所以自己编译。 编译环境 OS: deepin v20 清理 卸载已存在版本vim sudo apt purge vim vim-gtk vim-runtime vim-gnome vim-common vim-tiny vim-gui-co...

Linux下weblogic启动报错unable to get file lock的问题

非正常结束weblogic进程导致weblogic无法启动 由于先前服务器直接down掉了,所有进程都非正常的进行关闭了,也就导致了下次启动weblogic的时候报了以下错误:<2012-3-2 下午05时08分34秒 CST> <Info> <Management> <BEA-141281> <una...

linux中批量删除带空格的文件

两种批量删除带空格文件的方式: 第一种用find找到需要删除的文件,-print0指将空格替换成Null;而xargs中的-0参数又将null转换成空格 find . -name "xfsf*" -print0 | xargs -0 rm -rf    第二种用ls查找需要删除的文件,xargs中的-i参数指将每一项的名称替换成{} ls . |grep...

Linux dd工具磁盘读写测试分析

话说,Linux 自带的dd工具测试硬盘读写速度只能提供一个大概的测试结果,而且是连续IO 而不是随机IO ,理论上文件规模越大,测试结果越准确。理论上bs越大,所测得性能越高。 上句来自网上,是不是真的呢?百闻不如一见。今天来进行实际的测试和对比。 找了一台没有硬盘的机器,再找了一块希捷7200rpm 3T的硬盘。一块硬盘只能做raid0,条带设置为25...

puTTY与SecureCRT的比较

从网上看到别人对这两个工具的比较:从windows访问linux,除了samba之外,日常操作用得最多的大概就是PuTTY和SecureCRTPutty是免费的,SecureCRT是收费的(当然,有破解版)。 Putty缺省配置就很好看很好用,SecureCRT的缺省配置不是为linux准备的而且很难看。Putty拿来就可以立刻使用,SecureCRT需要...

[Linux内核]软中断与硬中断

转自:http://blog.csdn.net/zhangskd/article/details/21992933 本文主要内容:硬中断 / 软中断的原理和实现 内核版本:2.6.37 Author:zhangskd @ csdn blog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。...