我有一个软件客户端,我出售给一个非常利基的市场。我提供了一个30天的免费试用,我想确保那些没有购买产品激活密钥的人在第一次使用该软件30天后就不能使用该软件。我环顾四周,发现人们推荐使用机器第一张NIC卡的MAC地址作为机器的独特标识。
我卖了十几份软件,一切都很好。然而,在过去的一周里,两个新买家出现了问题。当软件检查我的网站时,它还会保存日志文件,这些文件告诉我MAC地址在这两个客户端的会话之间发生了变化。
对于一台机器,它在第一次会话之后更改了一次。另一方面,它似乎每3到4次调用一次我的软件。
现在我在网上看到了关于能够欺骗MAC地址的文章。是否有可能他们的防火墙或其他安全设置正在改变这个MAC地址?我正在使用下面的C#代码来检索MAC地址,这可能给了我一些我没想到的东西吗?
NetworkInterface.GetAllNetworkInterfaces()[0].GetPhysicalAddress().ToString()
我刚注意到这两个客户都在加拿大。不知道这是否重要,这看起来确实是个巧合,尽管.
有一个客户端没有运行VMWare。她的机器在运行“趋势微”安全,如果那个matters...hhhmmm.
发布于 2015-08-20 23:09:40
我使用了Reliable method to get machine's MAC address in C#的技术,给出了我的机器上的设备列表。
Status NetworkInterfaceType Speed GetPhysicalAddress() Description
0 Down Wireless80211 0 XXXXXXXXXXXX Realtek RTL8188CUS Wireless LAN 802.11n USB Slim Solo
1 Down Wireless80211 0 XXXXXXXXXXXX Microsoft Wi-Fi Direct Virtual Adapter
2 Up Ethernet 100000000 XXXXXXXXXXXX Realtek PCIe GBE Family Controller
3 Down Ethernet 3000000 XXXXXXXXXXXX Bluetooth Device (Personal Area Network)
4 Up Loopback XXXXXXXXXXXX Software Loopback Interface 1
5 Up Tunnel 100000 00000000000000E0 Microsoft Teredo Tunneling Adapter
6 Down Tunnel 100000 00000000000000E0 Microsoft ISATAP Adapter问题是我总是把清单上的第一项拿出来。黑莓VPN的网络(可能还有其他东西,包括VM)可以在他们认为合适的地方插入新设备。包括名单的开头。对他们来说,名单的顺序有很大的变化。
所以我的解决方案是让我的客户在一个管道分隔的字段中发送列表上的每个物理地址。服务器将存储一个地址,但将查看发送给它的每个项目。如果有任何匹配,则客户端可以启动。
这就留下了一个问题,当我注册时,我如何知道我正在选择一个将留在列表中的地址(而不是一个可能会离开的移动单元)。我考虑将整个列表存储在服务器上,但很快就变得复杂起来。相反,我将在服务器上存储第一个活动的(第一次登录时)。然后,我将监视被拒绝的人,更新他们的地址,试图捕捉模式,然后也许我可以编写一个自我倾斜的解决方案。诀窍是这样做,而不否定所有的支票,我已投入。
发布于 2015-01-25 22:15:07
它可能是一个虚拟机:
Maintaining the MAC Address of a Virtual Machine (VMWare-specific)
如果他们正在使用VM,那么很明显,他们必须在他们这一边采取这些步骤,才能使用您的软件。
还有可能是他们把你撕掉了。:D在您的weblog上记录MAC地址时,最好记录该计算机的其他一些简单属性,以排除这种可能性(或至少降低这种可能性)。
请记住,如果他们配置单个VM,并将其复制到同事,则指向VMWare站点的链接表明这将导致不同的MAC地址.如果这不是您想要支持的业务模型,那么您必须考虑到这个用例。
https://stackoverflow.com/questions/28142064
复制相似问题