Visual_C++网络编程技术-06.ppt

上传人:qwe****56 文档编号:80597430 上传时间:2023-03-23 格式:PPT 页数:30 大小:912KB
返回 下载 相关 举报
Visual_C++网络编程技术-06.ppt_第1页
第1页 / 共30页
Visual_C++网络编程技术-06.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《Visual_C++网络编程技术-06.ppt》由会员分享,可在线阅读,更多相关《Visual_C++网络编程技术-06.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、查询本地计算机配置查询本地计算机配置授课教师:授课教师:网络编程网络编程网络编程技术网络编程技术导入导入v内联网经常用在企业的局域网并使用分布式的应内联网经常用在企业的局域网并使用分布式的应用程序,而分布式的应用程序宿主是本地计算机,用程序,而分布式的应用程序宿主是本地计算机,如何正确地获得本地计算机的网络协议及配置信如何正确地获得本地计算机的网络协议及配置信息,对于更深入地编写网络应用程序是一件很重息,对于更深入地编写网络应用程序是一件很重要的事。要的事。网络编程技术网络编程技术本章要点本章要点v获取主机名和获取主机名和IP地址地址v读取注册表读取注册表v查询本机网卡地址查询本机网卡地址v查

2、询本机子网掩码查询本机子网掩码v查询本机网关查询本机网关v查询本机查询本机DNS设置设置网络编程技术网络编程技术功能需求分析功能需求分析 v开发一个简单的查询工具,可以查询本机的基本开发一个简单的查询工具,可以查询本机的基本软硬件配置,本机的基本网络配置软硬件配置,本机的基本网络配置,包括:包括:v计算机名计算机名vIP地址地址v操作系统操作系统vCPUv网卡地址网卡地址v子网掩码子网掩码vDNS服务器服务器v网关网关网络编程技术网络编程技术界面界面设计网络编程技术网络编程技术获取主机名和获取主机名和IP地址地址 v程序运行界面程序运行界面网络编程技术网络编程技术获取本机计算机名源代码获取本机

3、计算机名源代码vWSADATA wsaData;vWSAStartup(MAKEWORD(2,2),&wsaData);vchar HostName128;vBOOL bRet;vbRet=gethostname(HostName,128);vif(bRet!=0)vMessageBox(获取取计算机名算机名错误!,提示提示);vreturn;vvCString strMeg=HostName;vstrMeg=本机的本机的计算机名是:算机名是:+strMeg;vm_show.InsertString(-1,strMeg);vWSACleanup();网络编程技术网络编程技术获取本机获取本机IP

4、地址的源代码地址的源代码 vWSADATA wsaData;vWSAStartup(MAKEWORD(2,2),&wsaData);vchar HostName128;vstruct hostent*pHost;vgethostname(HostName,128);vpHost=gethostbyname(HostName);vint i=0;vCString strIP;vwhile(pHost-h_addr_listi!=NULL)v vstrIP=inet_ntoa(*(struct in_addr*)pHost-h_addr_listi);vCString str=本机的本机的IP地址

5、:地址:+strIP;vm_show.InsertString(-1,str);vi+;vvWSACleanup();网络编程技术网络编程技术代代码详解解gethostname函数函数v该函数可以获取本地主机名,若无错误,返回该函数可以获取本地主机名,若无错误,返回0;否则,返回否则,返回SOCKET_ERROR。vgethostname(char*name,int namelen);v参数参数name:用于指向所获取本地主机名的缓冲:用于指向所获取本地主机名的缓冲区地址。区地址。v参数参数namelen:缓冲区的大小,以字节示。:缓冲区的大小,以字节示。网络编程技术网络编程技术代代码详解解g

6、ethostbyname函数函数v该函数可以从主机名数据库中得到对应的该函数可以从主机名数据库中得到对应的“主机主机”(由名字和地址标识由名字和地址标识)。若无错误,函数返回一。若无错误,函数返回一个指向个指向hostent结构的指针,它可标识一个结构的指针,它可标识一个“主主机机”列表。列表。vstruct hostent*FAR gethostbyname(const char*name);v参数参数name:是主机名。:是主机名。网络编程技术网络编程技术读注册表注册表v获取本机的操作系统信息和获取本机的操作系统信息和CPU信息需要查询注信息需要查询注册表,从注册表中读出所需要的信息,然后

7、显示册表,从注册表中读出所需要的信息,然后显示到界面上到界面上。网络编程技术网络编程技术什么是注册表?什么是注册表?v注册表是注册表是Windows程序员建造的一个复杂的信程序员建造的一个复杂的信息数据库,它是多层次式的。息数据库,它是多层次式的。v注册表由键(或称注册表由键(或称“项项”)、子键(子项)和值)、子键(子项)和值项构成。项构成。v一个键就是分支中的一个文件夹,而子键就是这一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类个值项则是一个键的当前定义,由名称、数据类

8、型以及分配的值组成。型以及分配的值组成。v一个键可以有一个或多个值,每个值的名称各不一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的相同,如果一个值的名称为空,则该值为该键的默认值。默认值。网络编程技术网络编程技术查看注册表查看注册表v“开始开始”“运行运行”中输入中输入regedit命令,命令,然后回车,会弹出注册表编辑器界面然后回车,会弹出注册表编辑器界面 网络编程技术网络编程技术操作注册表的流程操作注册表的流程 网络编程技术网络编程技术操作注册表操作注册表 使用使用CRegKey类 CRegKey类提供的几个重要函数:提供的几个重要函数:vOpen函数

9、函数打开注册表打开注册表vQueryValue函数函数读注册表注册表vSetValue函数函数写注册表写注册表vClose函数函数关关闭注册表注册表网络编程技术网络编程技术代代码详解解Open函数函数v打开注册表中的主键。若成功,返回打开注册表中的主键。若成功,返回ERROR_SUCCESS,失败则返回错误值。,失败则返回错误值。vLONG Open(HKEY hKeyParent,LPCTSTR lpszKeyName,REGSAM samDesired=KEY_ALL_ACCESS);v参数参数hKeyParent:需打开的键的句柄。:需打开的键的句柄。v参数参数lpszKeyName:需

10、打开的键所在的注册表:需打开的键所在的注册表的路径。的路径。v参数参数samDesired:注册表访问的权限,默认值:注册表访问的权限,默认值为为KEY_ALL_ACCESS。网络编程技术网络编程技术代代码详解解QueryValue函数函数v读取注册表中键值项的键值,若成功,返回读取注册表中键值项的键值,若成功,返回ERROR_SUCCESS,失败则返回错误值。,失败则返回错误值。vLONG QueryValue(DWORD&dwValue,LPCTSTR lpszValueName);v参数参数dwValue:DWORD数据类型的键值。数据类型的键值。v参数参数lpszValueName:所

11、读取键值项的名称。:所读取键值项的名称。vLONG QueryValue(LPTSTR szValue,LPCTSTR lpszValueName,DWORD*pdwCount);v参数参数szValue:字符串数据类型的键值。:字符串数据类型的键值。v参数参数lpszValueName:所读取键值项的名称。:所读取键值项的名称。v参数参数pdwCount:字符串的长度。:字符串的长度。网络编程技术网络编程技术代代码详解解 SetValue函数函数vLONG SetValue(DWORD dwValue,LPCTSTR lpszValueName);v参数参数dwValue:需要写入的:需要写

12、入的DWORD类型型键值。v参数参数lpszValueName:所写入的键值项名称,:所写入的键值项名称,如果不存在,则增加一个新的键值项。如果不存在,则增加一个新的键值项。vLONG SetValue(LPCTSTR lpszValue,LPCTSTR lpszValueName=NULL);v参数参数lpszValue:需要写入的字符串类型键值。:需要写入的字符串类型键值。v参数参数lpszValueName:所写入的键值项名称,:所写入的键值项名称,如果不存在,则增加一个新的键值项。如果不存在,则增加一个新的键值项。网络编程技术网络编程技术查询本机网卡地址查询本机网卡地址 v程序运行界面

13、程序运行界面网络编程技术网络编程技术获取获取MAC地址流程地址流程 网络编程技术网络编程技术代代码详解解头文件和库文件头文件和库文件 vNetBIOS中所用的函数声明、常数等等均是在中所用的函数声明、常数等等均是在头头文件文件nb30.h内定内定义义的,使用的,使用NetBIOS还须还须连连接接库库netapi32.lib v#include v#pragma comment(lib,Netapi32.lib)网络编程技术网络编程技术代代码详解解Netbios函数函数 vWin32应用程序可以使用用程序可以使用Network Basic Input/Output System(NetBIOS)

14、接口)接口与网与网络中的其他中的其他计算机上的算机上的应用程序用程序进行通行通讯vUCHAR Netbios(PNCB pncb);v参数参数pncb:指向网:指向网络控制控制块的指的指针。v返回返回值放在放在pncb指向的指向的结构体里。构体里。网络编程技术网络编程技术查询本机子网掩码查询本机子网掩码 v子网掩码子网掩码(subnet mask)又叫网络掩码、地址又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个掩码、子网络遮罩,它是一种用来指明一个IP地地址的哪些位标识的是主机所在的子网以及哪些位址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。标识的是主机的位掩码。v

15、子网掩码不能单独存在,它必须结合子网掩码不能单独存在,它必须结合IP地址一起地址一起使用。使用。v子网掩码只有一个作用,就是将某个子网掩码只有一个作用,就是将某个IP地址划分地址划分成网络地址和主机地址两部分。成网络地址和主机地址两部分。网络编程技术网络编程技术查询子网掩码源代码查询子网掩码源代码vPIP_ADAPTER_INFO pAdapterInfo;vPIP_ADAPTER_INFO pAdapter=NULL;vDWORD dwRetVal=0;vpAdapterInfo=(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO);vunsign

16、ed long ulOutBufLen=sizeof(IP_ADAPTER_INFO);vGetAdaptersInfo(pAdapterInfo,&ulOutBufLen);v/获得本地得本地计算机的网算机的网络信息函数信息函数vdwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen);vpAdapter=pAdapterInfo;vwhile(pAdapter)vvCString strSubNetMask;vstrSubNetMask.Format(子网掩子网掩码:%sn,pAdapter-IpAddressList.IpMask.Strin

17、g);vMessageBox(strSubNetMask);vpAdapter=pAdapter-Next;v网络编程技术网络编程技术代代码详解解GetAdaptersInfo函数函数 v函数参数中的函数参数中的PIP_ADAPTER_INFO结构包含了本地结构包含了本地计算机上一个特定网络适配器的信息,从而能够获取所需计算机上一个特定网络适配器的信息,从而能够获取所需的信息,如子网掩码、网卡信息和默认网关等内容的信息,如子网掩码、网卡信息和默认网关等内容vDWORD GetAdaptersInfo(v PIP_ADAPTER_INFO pAdapterInfo,v PULONG pOutBu

18、fLenv);v参数参数pAdapterInfo:指向:指向IP_ADAPTER_INFO结构的指构的指针v参数参数pOutBufLen:一个:一个ULONG变量的指量的指针,表示指,表示指向向pAdapterInfo结构的大小。构的大小。网络编程技术网络编程技术查询本机网关信息查询本机网关信息 v获取网关信息程序与前面获取子网掩码程序实现获取网关信息程序与前面获取子网掩码程序实现方法基本相同,也是通过方法基本相同,也是通过GetAdaptersInfo()函数实现的。函数实现的。网络编程技术网络编程技术查询本机查询本机DNS设置设置 vDNS 是域名系是域名系统统(Domain Name S

19、ystem)的的缩缩写,写,该该系系统统用于命名用于命名组织组织到域到域层层次次结结构中的构中的计计算机和网算机和网络络服服务务。v在在Internet上域名与上域名与IP地址之地址之间间是一是一对对一(或一(或者多者多对对一)的,域名一)的,域名虽虽然便于人然便于人们记忆们记忆,但机器,但机器之之间间只能互相只能互相认识认识IP地址地址v域名和域名和IP地址之地址之间间的的转换转换工作称工作称为为域名解析,域域名解析,域名解析需要由名解析需要由专门专门的域名解析服的域名解析服务务器来完成,器来完成,DNS就是就是进进行域名解析的服行域名解析的服务务器。器。网络编程技术网络编程技术代代码解析解

20、析GetNetworkParams()函数函数v功能是获取本地计算机的网络参数功能是获取本地计算机的网络参数,从而获得计算机的从而获得计算机的DNS设置。成功返回设置。成功返回TRUE,失败返回,失败返回FALSE。该函数。该函数在头文件在头文件Iphlpapi.h中定义,需要库文件中定义,需要库文件Iphlpapi.lib的支持。的支持。vDWORD GetNetworkParams(PFED_INFO pFixedInfo,PULONG pOutBufLen);v参数参数pFixedInfo:指向:指向FIXED_INFO结构的指针,该结构的指针,该结构获取本地计算机的网络参数。结构获取本

21、地计算机的网络参数。v参数参数pOutBufLen:指向一个:指向一个ULONG变量的指针,该变量的指针,该ULONG变量表示指向变量表示指向pFixedInfo结构的大小。结构的大小。网络编程技术网络编程技术课堂堂练习题1.操作注册表用的类是操作注册表用的类是 。2.注册表由注册表由 、子键(子项)和、子键(子项)和 构成。构成。3.的作用就是将某个的作用就是将某个IP地址划分成网络地地址划分成网络地址和主机地址两部分。址和主机地址两部分。4.域名便于人们记忆,但机器之间只能互相认识域名便于人们记忆,但机器之间只能互相认识IP地址,因此需要将域名与地址,因此需要将域名与IP地址进行转换,地址进行转换,称为称为 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁