
MAC地址是网卡决定的,是固定的。
查看方法:
(1)首先,找到手机的“设置”,进入设置后,选择“无线和网络”。
(2)选择“WLAN设置”进入即可。
(3)进入后,点击手机左下角的"菜单键",在d出的小菜单里选择“高级”。
(4)现在就可以看到安卓手机的mac地址了。我认为你是从 socket中取不到这部分的信息的
你得再 *** 作 arp的缓存部分才行 ARP那部分如果在特殊情况,很乱套比如有攻击或是IP地址设置有冲突啥地
---
详细的C语言怎么 *** 作ARP缓存我不太清楚 但你如果想知道就得查一下这部分怎么做了
高层的socket *** 作是得不到的
只有直连网段的计算机有MAC地址信息经过路由来的数据包取不到
如果服务器端要获取客户端ip的话:
//假设socket(),bind(),listen()函数已经完成addrlen = sizeof(client);
connetfd = accept(listenfd,(struct sockaddr )&client,&addrlen);
那么clientsin_port 就是客户端的端口
clientsin_addrs_addr 就是客户端的ip。
这两个都是以网络字节序来保存的,如果要printf的话需要先转化为主机字节序
说得简单通俗一些就是:在使用 TCP/IP socket 网络编程进行网络通信时,就必须要涉及到获取客户端和服务器双方的 IP 地址(有时还涉及到服务端口号)、以及 client/server 编程模式下的绑定地址(binding)、监听(listen)、发送/接收,等等 *** 作。你最好可以换台电脑访问网址看获取IP地址状况。如果你测试访问的时候,使用的是 localhost 进行访问的,那么服务器端获得的也就是127001,因为localhost是一个环路地址,特殊的如果你是通过你的ip地址进行访问的,那么获得的IP地址就会是正确的了 要通过自己本地的IP进行访问,在控制面板的网络连接里找到本地连接,查看它的属性,并找到"详细信息"按钮,点击后d出的对话框中IPV4地址就是本地地址或打开命令行,输入 ipconfig /all 即可找到本地地址在浏览器中通过这个IP地址访问,就不会是127001了客户端
ip
地址是通过
cgi
变量
remote_addr
得到的,这个是
>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)