【问题标题】:How to get MAC address of a client device with connect mobile data in Xamarin.Forms?如何在 Xamarin.Forms 中通过连接移动数据获取客户端设备的 MAC 地址?
【发布时间】:2021-01-19 10:48:33
【问题描述】:

在我的客户端服务器解决方案中,我需要前端设备的 MAC 地址,运行我的 Xamarin.Forms 应用程序。目前我刚刚得到Wifi 连接的Mac 地址在有关设备的信息中是正确的。但是,我使用了mobile data,然后在设备中获取的 Mac 地址不正确。

var lstAllNetWorkInfaces = NetworkInterface.GetAllNetworkInterfaces();
                        var ni = lstAllNetWorkInfaces.FirstOrDefault(intf => (intf.OperationalStatus == OperationalStatus.Up)
                                                             && (intf.NetworkInterfaceType == NetworkInterfaceType.Wireless80211
                                                                 || intf.NetworkInterfaceType == NetworkInterfaceType.Ethernet));
                        var hw = ni.GetPhysicalAddress();
                        physicalWifiAddress = string.Join(":", (from ma in hw.GetAddressBytes() select ma.ToString("X2")).ToArray());

如果有错误或者您找到了更好的解决方案,请告诉我。

【问题讨论】:

  • 客户端和服务器在同一个网络吗?
  • 你好,MAC是干什么用的?
  • 你的机器有一个 ARP 表。试试 cmd.exe >ARP -A.ARP 表有 MAC 地址。当任何机器在本地网络中发送 ARP 消息时,ARP 表会更新.引脚的响应也包含MAC。你得到physicalAddress() 方法读取ARP 表。如果该表不包含机器的 IP 地址,那么您必须 ping 设备。很可能您没有获得 MAC,因为机器不在子网中。
  • @Cleptus 嗨,我想在平板电脑中获取 MAC 地址,通过移动数据连接,然后客户端和服务器不在同一个网络。
  • "我想在通过移动数据连接的平板电脑中获取 MAC 地址,然后客户端和服务器不在同一个网络。" MAC 地址仅在网络上可见或相关设备已连接,而不是在远程网络上。 MAC 地址的安全性是傻瓜游戏,因为更改 MAC 地址以欺骗有效地址非常容易。

标签: c# .net networking xamarin.forms xamarin.android


【解决方案1】:

"第 2 层(数据链路)- 它在移动台 (MS) 和网络之间提供可靠的信令链路。协议基于 ISDN 的 LAPDm"

来源是Does the OSI model also apply to mobile networks?

所以在 2G 网络中不使用 ARP,因此 MAC 地址在这种情况下不是一个东西。您应该考虑其他客户端身份验证方法。

我建议使用客户端证书,它们适用于任何设备。

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 2017-07-24
    • 2014-07-22
    • 2010-11-28
    • 2017-10-28
    • 1970-01-01
    • 2013-07-15
    • 2015-02-28
    相关资源
    最近更新 更多