计算机网络实验指导书 2007.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络实验指导书 2007.doc

实验一 获取以太网卡的MAC地址 【】【】【】【】【】…) 这里,参数d取值套接口的描述符,第一个request参数指定通过socket传输的I/O类型。本实验可以取值SIONGIFHWADDR(0x8927),表示取硬件地址。其他取值及其含义详见/usr/includr/linux/sockios.h。其后的request参数用于为实现I/O控制所必须传入或传出的参数。本实验需要用ifr结构传入网卡设备名,并传出6B的MAC地址。关键的程序段如下: #include netinet/if_ether.h #include net/if.h char *device=”eth0”; //teh0是网卡设备名 unsigned char macaddr[ETH_ALEN]; //ETH_ALEN(6)是MAC地址长度 int s=socket(AF_INET,SOCK_DGRAM,0); //建立套接口 struct ifreq req; int err; strcpy(req.ifr_name,device); //将设备名作为输入参数传入 err=ioctl(s,SIOCGIFHWADDR,req); //执行取MAC地址操作 close(s); if(err!= -1) { memcpy(addr,req.ifr_hwaddr.sa_data,ETH_ALEN); //取输出的MAC地址 for(i=0;iETH_ALEN;i++) printf(”%3d:”,macaddr[i]); } 2、C#编程要点 Microsoft提供的WMI(Windows Management Instrumentation)中提供了一个Win32_NetworkAdapterConfiguration的类,定义了获取MAC地址的方法,因此只要构造一个定义为Win32_NetworkAdapter Configuration的WMI类,从中取出MAC地址的值即可。在C#中管理WMI主要使用ManagementClass类。编写程序过程要注意以下两个要点。 1)、命名空间的添加 由于System.Management的动态链接库不是C#中默认加载的,所以要添加System.Management的命名空间前要添加System.Management.dll链接库。依次选择:“项目”→“添加引用”→“.NET”菜单栏,加入System.Management。确认添加了动态链接库后添加命名空间: using System.Management; 2)、MAC地址的获取 根据前面的介绍,要构造一个ManagementClass类管理定义为Win32_NetworkAdapter Configuration的WMI类,然后将ManagementClass类中的所有变量的值返回给属于ManagementObjectCollection类的变量,ManagementObjectCollection类用于表示WMI实例的不同集合,将不同集合中的各个MAC地址读出,就可获得多网卡的MAC地址。 构造ManagementClass,函数原型如下: public ManagementClass(string path); 参数:path表示WMI的路径。 要返回ManagementClass所有实例的集合,使用GetInstances(),函数原型如下: public ManagementObjectCollection GetInstances(); 例如:获得本机上多网卡的MAC地址: ManagementClass mc; //定义一个ManagementClass类 //将ManagementClass类变量定义为Win32_NetworkAdapter Configuration,以便获得//网络信息 mc=new ManagementClass(” Win32_NetworkAdapterConfiguration”); //使用ManagementObjectCollection记录mc中的所有信息,包括多个网卡信息 ManagementObjectCollection moc=mc. GetInstances(); //取得ManagementObjectCollection中的不同网卡配置信息,判断如果该网卡可用就//去读取MAC地址 foreach(ManagementObject mo in moc) { if(mo[“IPEnabled”].ToStri

您可能关注的文档

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档