• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

在SCO下编程获取网卡MAC地址

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网
  #include <stdio.h>
  #include <sys/types.h>
  #include <strings.h>
  #include <sys/stream.h>
  #include <sys/stropts.h>
  #include <sys/macstat.h>
  
  int main(int argc, char *argv[])
  {
  struct strioctl strioc;
  u_char ether_addr[6];
  int s;
  
  if (argc != 2) {
  fprintf(stderr, "usage: %s deviceFile\n", argv[0]);
  exit (1);
  }
  
  bzero(ether_addr, sizeof(ether_addr));
  
  if ((s = open(argv[1], 0)) < 0) {
  perror(argv[1]);
  exit(1);
  }
  strioc.ic_cmd = MACIOC_GETADDR;
  strioc.ic_timout = -1;
  strioc.ic_len = sizeof(ether_addr);
  strioc.ic_dp = (caddr_t) ether_addr;
  if (ioctl(s, I_STR, (char *)&strioc) < 0) {
  perror("I_STR: MACIOC_GETADDR");
  exit(1);
  }
  
  printf("%s is using address %02x:%02x:%02x:%02x:%02x:%02x\n",
  argv[1],
  ether_addr[0], ether_addr[1], ether_addr[2],
  ether_addr[3], ether_addr[4], ether_addr[5]
  );
  
  exit(0);
  }
  
  /********************************** end *********************************/
  
  注:
  执行方式如(假设编译出的执行文件为getmac):
  ./getmac /dev.net0
  
  MDI(MAC Driver Interface)
  
  MACIOC_GETADDR
  向MDI driver发出请求从而获取网卡当前MAC地址 (the current MAC address);
  
  MACIOC_GETRADDR
  向MDI driver发出请求从而获取网卡厂商MAC地址(the factory MAC address);
  
  此程序适用于SCO OpenServer和UnixWare,在OpenServer 5.06上测试通过。
  
  我在尝试使用MACIOC_GETRADDR时提示无效参数,我估计也许是与驱动中没有提供相应的实现有关,因为我在偶然看到的注释版权信息为
  /*
  * Copyright (C) The Santa Cruz Operation, 1993-1995.
  * This Module contains Proprietary Information of
  * The Santa Cruz Operation and should be treated
  * as Confidential.
  */
  的AT-2500TX驱动源码中,相应部分只包含了MACIOC_GETADDR的实现,而没有MACIOC_GETRADDR。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网