服务器代理设置与MIB信息获取实验报告,获取主机网卡信息实验报告.doc

获取主机网卡信息实验报告

西安财经学院信息学院

《网络程序设计》 实验报告

实验名称 获取主机网卡信息和子网掩码 实验室 实验楼402 实验日期

一、实验目的

了解如何编写程序实现获取本地主机的网卡信息和子网掩码。

实验要求

获得本地计算机的网络信息,从而获得计算机的网卡名、网卡驱动程序、IP地址、子网掩码、物理地址、是否启用了DHCP、是否启用了WINS等网络信息。

实验内容

利用GetAdaptersInfo函数获取计算机的网络信息。

实验原理

在TCP/IP协议中,子网掩码是用来区分网络上的主机是否在同一网络段内的。假如某主机的IP地址为202.119.115.78,它的子网掩码为255.255.255.0,将这两个数据做AND运算,则所得的值中非零的部分即为网络ID。运算步骤如下:

(1)IP地址202.119.115.78的二进制值0111011101001110。

(2) 子网掩码255.255.255.0的二进制值1111111100000000。

(3) 将两者做AND计算,其结果0111011100000000。

(4) 将结果转换成十进制后为202.119.115.0,其非零部分202.119.115就是网络ID,在IP地址中剩下的为主机ID,本例中为78。这样如果另一台主机的IP地址为202.119.115.83,其子网掩码为255.255.255.0,则其网络ID为202.119.115,主机ID为83。因为这两台主机的网络ID均为202.119.115,因此这两台主机在同一网段内。

函数GetAdaptersInfo可以获得本地计算机的网络信息,从而获得该计算机的网卡名、网卡驱动程序、IP地址、子网掩码、物理地址、是否启用了DHCP、是否启用了WINS等网络信息。注意该函数在头文件IpHlpApi.h中声明,库文件为IpHlpApi.lib。函数原型为:

DWORD GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);

其中:

参数pAdapterInfo指向IP_ADAPTER_INFO结构链表缓冲区的指针;

参数pOutBufLen指向一个ULONG变量的指针,该ULONG变量表示指向pAdapterInfo结构的大小。

参数中的IP_ADAPTER_INFO结构包含了本地计算机上一个特定网络适配卡的信息,该结构格式如下:

typedef struct _IP_ADAPTER_INFO

{

struct _IP_ADAPTER_INFO* Next;//指向链表中下一个适配器信息的指针

DWORD ComboIndex;//预留值

char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];//使用ANSI字符串表示的适配器名称

char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];//使用ANSI字符串表示的适配器描述

UINT AddressLength;//适配器硬件地址以字节计算的长度

BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];//硬件地址以BYTE数组所表示

DWORD Index;//适配器索引

UINT Type;//适配器类型

UINT DhcpEnabled;//指定这个适配器是否开启DHCP

PIP_ADDR_STRING CurrentIpAddress;//预留值

IP_ADDR_STRING IpAddressList;//该适配器的IPv4地址链表

IP_ADDR_STRING GatewayList;//该适配器的网关IPv4地址链表

IP_ADDR_STRING DhcpServer;//该适配器的DHCP服务器的IPv4 地址链表

BOOL HaveWins;

IP_ADDR_STRING PrimaryWinsServer;

IP_ADDR_STRING SecondaryWinsServer;

time_t LeaseObtained;

time_t LeaseExpires;

} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;

其中成员变量的具体

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值