Visual C++网络编程技术-06.ppt_第1页
Visual C++网络编程技术-06.ppt_第2页
Visual C++网络编程技术-06.ppt_第3页
Visual C++网络编程技术-06.ppt_第4页
Visual C++网络编程技术-06.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

查询本地计算机配置 授课教师 网络编程 导入 内联网经常用在企业的局域网并使用分布式的应用程序 而分布式的应用程序宿主是本地计算机 如何正确地获得本地计算机的网络协议及配置信息 对于更深入地编写网络应用程序是一件很重要的事 本章要点 获取主机名和IP地址读取注册表查询本机网卡地址查询本机子网掩码查询本机网关查询本机DNS设置 功能需求分析 开发一个简单的查询工具 可以查询本机的基本软硬件配置 本机的基本网络配置 包括 计算机名IP地址操作系统CPU网卡地址子网掩码DNS服务器网关 界面设计 获取主机名和IP地址 程序运行界面 获取本机计算机名源代码 WSADATAwsaData WSAStartup MAKEWORD 2 2 获取本机IP地址的源代码 WSADATAwsaData WSAStartup MAKEWORD 2 2 代码详解 gethostname函数 该函数可以获取本地主机名 若无错误 返回0 否则 返回SOCKET ERROR gethostname char name intnamelen 参数name 用于指向所获取本地主机名的缓冲区地址 参数namelen 缓冲区的大小 以字节示 代码详解 gethostbyname函数 该函数可以从主机名数据库中得到对应的 主机 由名字和地址标识 若无错误 函数返回一个指向hostent结构的指针 它可标识一个 主机 列表 structhostent FARgethostbyname constchar name 参数name 是主机名 读注册表 获取本机的操作系统信息和CPU信息需要查询注册表 从注册表中读出所需要的信息 然后显示到界面上 什么是注册表 注册表是Windows程序员建造的一个复杂的信息数据库 它是多层次式的 注册表由键 或称 项 子键 子项 和值项构成 一个键就是分支中的一个文件夹 而子键就是这个文件夹中的子文件夹 子键同样是一个键 一个值项则是一个键的当前定义 由名称 数据类型以及分配的值组成 一个键可以有一个或多个值 每个值的名称各不相同 如果一个值的名称为空 则该值为该键的默认值 查看注册表 开始 运行 中输入 regedit 命令 然后回车 会弹出注册表编辑器界面 操作注册表的流程 操作注册表使用CRegKey类 CRegKey类提供的几个重要函数 Open函数 打开注册表QueryValue函数 读注册表SetValue函数 写注册表Close函数 关闭注册表 代码详解 Open函数 打开注册表中的主键 若成功 返回ERROR SUCCESS 失败则返回错误值 LONGOpen HKEYhKeyParent LPCTSTRlpszKeyName REGSAMsamDesired KEY ALL ACCESS 参数hKeyParent 需打开的键的句柄 参数lpszKeyName 需打开的键所在的注册表的路径 参数samDesired 注册表访问的权限 默认值为KEY ALL ACCESS 代码详解 QueryValue函数 读取注册表中键值项的键值 若成功 返回ERROR SUCCESS 失败则返回错误值 LONGQueryValue DWORD参数dwValue DWORD数据类型的键值 参数lpszValueName 所读取键值项的名称 LONGQueryValue LPTSTRszValue LPCTSTRlpszValueName DWORD pdwCount 参数szValue 字符串数据类型的键值 参数lpszValueName 所读取键值项的名称 参数pdwCount 字符串的长度 代码详解 SetValue函数 LONGSetValue DWORDdwValue LPCTSTRlpszValueName 参数dwValue 需要写入的DWORD类型键值 参数lpszValueName 所写入的键值项名称 如果不存在 则增加一个新的键值项 LONGSetValue LPCTSTRlpszValue LPCTSTRlpszValueName NULL 参数lpszValue 需要写入的字符串类型键值 参数lpszValueName 所写入的键值项名称 如果不存在 则增加一个新的键值项 查询本机网卡地址 程序运行界面 获取MAC地址流程 代码详解 头文件和库文件 NetBIOS中所用的函数声明 常数等等均是在头文件nb30 h内定义的 使用NetBIOS还须连接库netapi32 lib include pragmacomment lib Netapi32 lib 代码详解 Netbios函数 Win32应用程序可以使用NetworkBasicInput OutputSystem NetBIOS 接口与网络中的其他计算机上的应用程序进行通讯UCHARNetbios PNCBpncb 参数pncb 指向网络控制块的指针 返回值放在pncb指向的结构体里 查询本机子网掩码 子网掩码 subnetmask 又叫网络掩码 地址掩码 子网络遮罩 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码 子网掩码不能单独存在 它必须结合IP地址一起使用 子网掩码只有一个作用 就是将某个IP地址划分成网络地址和主机地址两部分 查询子网掩码源代码 PIP ADAPTER INFOpAdapterInfo PIP ADAPTER INFOpAdapter NULL DWORDdwRetVal 0 pAdapterInfo IP ADAPTER INFO malloc sizeof IP ADAPTER INFO unsignedlongulOutBufLen sizeof IP ADAPTER INFO GetAdaptersInfo pAdapterInfo 代码详解 GetAdaptersInfo函数 函数参数中的PIP ADAPTER INFO结构包含了本地计算机上一个特定网络适配器的信息 从而能够获取所需的信息 如子网掩码 网卡信息和默认网关等内容DWORDGetAdaptersInfo PIP ADAPTER INFOpAdapterInfo PULONGpOutBufLen 参数pAdapterInfo 指向IP ADAPTER INFO结构的指针参数pOutBufLen 一个ULONG变量的指针 表示指向pAdapterInfo结构的大小 查询本机网关信息 获取网关信息程序与前面获取子网掩码程序实现方法基本相同 也是通过GetAdaptersInfo 函数实现的 查询本机DNS设置 DNS是域名系统 DomainNameSystem 的缩写 该系统用于命名组织到域层次结构中的计算机和网络服务 在Internet上域名与IP地址之间是一对一 或者多对一 的 域名虽然便于人们记忆 但机器之间只能互相认识IP地址域名和IP地址之间的转换工作称为域名解析 域名解析需要由专门的域名解析服务器来完成 DNS就是进行域名解析的服务器 代码解析 GetNetworkParams 函数 功能是获取本地计算机的网络参数 从而获得计算机的DNS设置 成功返回TRUE 失败返回FALSE 该函数在头文件Iphlpapi h中定义 需要库文件Iphlpapi lib的支持 DWORDGetNetworkParams PF ED INFOpFixedInfo PULONGpOutBufLen 参数pFixedInfo 指向FIXED INFO结构的指针 该结构获取本地计算机的网络参数 参数p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论