• 6889阅读
  • 6回复

如何获取MAC地址的问题 [复制链接]

上一主题 下一主题
离线gemscorpio
 

只看楼主 倒序阅读 楼主  发表于: 2009-02-26
— 本帖被 XChinux 执行加亮操作(2009-02-26) —
基于TCP SOCKET开发的服务端,想限制客户端的重复登录,想从MAC地址下手,如何获取客户端的MAC地址,或者有其它什么好的方法没有。
离线guoyun_he

只看该作者 1楼 发表于: 2009-02-26
  1. #include <stdio.h>
  2. #include <sys/ioctl.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <net/if.h>
  6. int main( int argc, char *argv[] )
  7. {
  8.     int s;
  9.         
  10.     struct ifreq buffer;
  11.     s = socket(PF_INET, SOCK_DGRAM, 0);
  12.     memset(&buffer, 0x00, sizeof(buffer));
  13.     strcpy(buffer.ifr_name, "eth0");
  14.     ioctl(s, SIOCGIFHWADDR, &buffer);
  15.     close(s);    
  16.     for( s = 0; s < 6; s++ )
  17.     {
  18.         printf("%.2X ", (unsigned char)buffer.ifr_hwaddr.sa_data[s]);
  19.     }
  20.     printf("\n");
  21.     return 0;
  22. }
离线gemscorpio

只看该作者 2楼 发表于: 2009-02-26
楼上这个不是QT中的吧!
离线gemscorpio

只看该作者 3楼 发表于: 2009-02-27
一,没人知道吗?
只看该作者 4楼 发表于: 2009-02-27
你要在客户端获得客户端的mac地址发送给服务器端呢?还是在服务器端获得客户端的mac地址
离线蛮蛮
只看该作者 5楼 发表于: 2009-02-28
肯定是后者
蛮蛮工作室
只看该作者 6楼 发表于: 2009-02-28
如果不是B/S架构,何必用后者……是的话……也得用脚本从客户端发mac到服务器

通讯包头里的源MAC可能根本不是客户端而只是网关或者是路由的mac,除非楼主把通讯做在mac层了
况且qt的网络模块的通讯是在tcp/ip层以上的,没东西可以拿来直读包头的mac信息

The QtNetwork module offers classes that allow you to write TCP/IP clients and servers
快速回复
限100 字节
 
上一个 下一个