当前位置:  技术问答>linux和unix

如何获得client的MAC地址?

    来源: 互联网  发布时间:2016-01-27

    本文导语:  我写了一个模拟程序,一个client,一个server,通过upd传数据。 我可以用inet_ntoa获得client端的IP地址,但是我不知道怎么从server端获得client的MAC地址。谢谢! client.c -------------------- #include  #include  #include  #include  #incl...

我写了一个模拟程序,一个client,一个server,通过upd传数据。
我可以用inet_ntoa获得client端的IP地址,但是我不知道怎么从server端获得client的MAC地址。谢谢!

client.c
--------------------
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int port = 6789;

int main(int argc, char** argv)
{
        int sdf;
        struct sockaddr_in      addr;
        char buf[1024];
        int ret;

        memset(&addr, 0, sizeof(addr));
        
        sdf = socket(AF_INET, SOCK_DGRAM, 0);
        addr.sin_family = AF_INET;
        addr.sin_addr.s_addr = inet_addr("127.0.0.100");
        addr.sin_port = htons(port);

        do {
        memset(buf, 0, 1024);
        printf("Please input the next message: ");
        scanf("%s", buf);
        ret = sendto(sdf, buf, strlen(buf), 0, (struct sockaddr *)&addr, sizeof(addr));
        printf("ret: %dn", ret);
        if (!strcmp(buf, "exit") || !strcmp(buf, "quit")) break;
        } while(1);
}           

=========================
server.c
-------------------------
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int port = 6789;
        
int main(int argc, char** argv)
{
        int sdf;
        struct sockaddr_in sin;
        struct hostent* server_host_name; 
        char buf[2048]; 
        int sin_len;
        int ret;

        bzero(&sin, sizeof(sin));
        
        sin.sin_family = AF_INET;
        sin.sin_addr.s_addr = htonl(INADDR_ANY);
        sin.sin_port = htons(port);
        sdf = socket(PF_INET, SOCK_DGRAM, 0);
        bind(sdf, (struct sockaddr *)&sin, sizeof(sin));
        while(1) {
                bzero(buf, 2048);
                sin_len = sizeof(sin);
                ret = recvfrom(sdf, buf, 2047, 0, (struct sockaddr *)&sin, (socklen_t*)&sin_len);
                printf("ret: %dn", ret);
                printf("Received message: %sn", buf);

                printf("Client IP address: %sn", inet_ntoa(sin.sin_addr));
                if (ioctl(sdf, SIOCGIFNETMASK, &sin) 

    
 
 

您可能感兴趣的文章:

  • get_free_pages后获得的虚拟内存地址如何才能转换成物理地址?
  • Linux下局域网内如何根据对方机器的IP地址获得对方机器网卡的MAC地址?
  • 请问怎样编程获得本机的MAC地址?还有能不能设置本机MAC地址?
  • linux 中怎么根据MAC地址获得IP地址?(用C语言实现)
  • 如何获得虚拟地址对应的物理地址?
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址?
  • redhat9.0怎样查看机器从DHCP获得的IP地址啊?
  • 如何获得虚拟机的ip地址
  • 如何在UNIX下获得MAC地址?
  • 我的redhat 可以自动获得Ip地址 却无法浏览网页 !
  • Linuc下如何获得端口IP地址?
  • 如何知道当前的IP地址是如何获得的?是静态设定的,还是dhcp?
  • Linux 如何获得分配内存的起始地址
  • 如何在freebsd下获得本机的ip地址?
  • 如何获得对方ip地址
  • 怎样获得mac地址?
  • 客户端IP地址的获得?
  • 在JavaBean或Servlet如何获得URL地址?
  • 有什么函数调用可以获得网关的MAC地址?
  • 请问如何通过命令来获得本机linux的ip地址?
  • tftp支持client从server获得文件大小么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用sysconf(_SC_CLK_TCK)可以获得时钟的hz,还有什么方法可以获得内核时钟的hz
  • gtk的获得属性的问题!急!
  • 调用DOM对象的focus使文本框获得焦点
  • 获得客户端的显示分辨率
  • gtk的获得属性的问题!急! iis7站长之家
  • linux下什么语言获得参数是~1
  • 求救:关于在BSD下如何通过文件路径使用核内函数获得文件句柄?
  • jQuery获得内容和属性示例代码
  • jQuery获得内容与属性方法
  • mysql获得60天前unix时间思路及代码
  • 用javamail怎么获得邮件内容?
  • 如何获得上一组件的的位置信息?
  • 请问怎样获得当前所在目录和清屏?
  • 如何获得系统支持字体?
  • 按钮如何获得焦点并按回车触发?
  • 如何获得刚插入数据的id递增值
  • 如何获得iptables的输出信息??????有挑战性阿!!!
  • 获得usb设备的Serial Number
  • 获得磁盘剩余空间
  • 如何获得系统硬盘使用情况,急!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3