当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何用C获得MAC Address?
帖子发表于 : 2007-03-11 1:03 
头像

注册: 2006-07-30 15:31
帖子: 51
送出感谢: 0 次
接收感谢: 0 次
如题
谢谢!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-03-12 4:44 

注册: 2007-02-03 6:25
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
其实可以C和shell 练习起来就好整了!
我自己写了一个,在Kubuntu 上实验成功~
希望能给您帮助。
我想如果是,仅是让他输出显示出来本机MAC地址么
就用这个system()这个库函数然后挂接上shell那些命令就行~
1.直接输出法
直接在你的main函数里面
代码:
 
system("ifconfig eth0 | grep ""硬件地址"" |awk '{print $4 }'");


2.重定向法
代码:
main()
{
  char fname[256],cmd[256],buf[256];
  FILE *f;
  tmpnam(fname);
  sprintf(cmd,"ifconfig eth0 | grep ""硬件地址"" |awk '{print $4 }'>%s",fname);
  printf("正在获取MAC地址...\n");
  system(cmd);
  system("ifconfig eth0 | grep ""硬件地址"" |awk '{print $4 }'");
  f =fopen(fname,"r");
  while(fgets(buf,sizeof buf,f))
  printf("%s",buf);
  fclose(f);
  unlink(fname);
}

这种么可以对得出的结果再作处理。
如果您有什么好方法~记得发给我一份~呵呵~

哦~对了!忘了说~要先在你想运功程序的系统上运行shell 命令看看!
如果脸shell 命令都不行~就要改了~ 反正哪个命令能只显示出来Mac add就用哪个~
而且还要看 grep 后面的关键字~英文版的也要改为对应的 E文~
如果找不到命令还可以找网络配置的文档直接获取!
kUbuntu 的配置文件我没找~Suse 的网卡配置文件 在/etc/sysconfig/network/if*** (记不得了~)

而且system();sprintf();tmpnam();unlink();可以在windows下使用的~ Windows 下我不用C的~没实验过~


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-03-13 19:41 
头像

注册: 2006-07-30 15:31
帖子: 51
送出感谢: 0 次
接收感谢: 0 次
windows下如何?
谢谢


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-03-13 20:40 

注册: 2007-02-03 6:25
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
代码:

#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <netinet/if_ether.h>

int main(int argc, char **argv)
{
        int nSocket;
        struct ifreq struReq;

        nSocket = socket(PF_INET,SOCK_STREAM,0);

        memset(&struReq,0,sizeof(struReq));
        if(argc < 2)
                strncpy(struReq.ifr_name, "eth0", sizeof(struReq.ifr_name));
        else
                strncpy(struReq.ifr_name, argv[1], sizeof(struReq.ifr_name));
        ioctl(nSocket,SIOCGIFHWADDR,&struReq);
        fprintf(stderr, "%d-%s\n", __LINE__, strerror(errno));

        printf("%s\n", ether_ntoa(struReq.ifr_hwaddr.sa_data));
        close(nSocket);
}



页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译