2009-08-29 72 views
6

我们正在使用MAC地址将PC标识为许可运行软件。 (不关心MAC欺骗;许可证很难得到:) 个人电脑可能有多个以太网控制器(我们也不用担心 的情况,哪里没有;我们还没有遇到过这样的机器 5年),所以可靠地选择一个稳定的 一个问题。如何获得PC的稳定MAC地址?

我以为我们有这个钉子,但显然不是。我们使用Microsoft SDK iphlpapi模块中的GetAdaptersInfo ,然后沿着列表走。 我们使用最后一个适配器,想必它是主板 以太网控制器。唉,我们遇到了一个Thinkpad,它出现 ,根据是否停靠,更改哪个控制器是最后一个。

有没有办法在系统上可靠地找到主板 以太网控制器的MAC地址(如果存在)?而对于那些有2个或更多的主板,请选择其中一个稳定的主板? [如果我知道一套是基于主板的,我可以轻松选择最低地址MAC]。

回答

2

不 - 没有可靠的方法来做到这一点。 USB软件狗便宜又容易 - 使用它们。

我曾经有过使用MAC锁定软件的“乐趣”,我只能说不这样做。

+0

同意。如果我们忽略了这个软件(以及几个虚拟环境),我们会因为一个无用的MAC许可系统而拒绝这个... – gbn 2009-08-29 12:15:01

+1

我有幸自己。就我而言,该软件选择了一个由VPN软件创建的“虚拟”MAC地址。猜猜当我卸载VPN软件时发生了什么? – 2009-08-29 12:21:41

+0

对于100美元的产品(其中我们有多种产品),加密狗并不实用。他们工作1000美元的产品(其中我们有几个)。 – 2010-03-13 19:54:08

3

这是一个浑浊的问题。你如何处理虚拟化?在我的机器上,我有几个以太网适配器,其中只有一个实际上是基于硬件的。我的虚拟机都有软件生成的MAC地址。而且,如果我真的想,我可以在具有相同MAC地址的不同计算机上设置多个虚拟机(当然不在同一个网络上)。

+0

同意,这不是一个明智的许可方法。 OP应该实施另一个系统。 – 2009-08-30 02:08:14

+0

你会建议什么,那是机器的独特之处? – 2010-03-13 19:53:26

1

我没有一个解决方案,但也有可能是另一个问题:

存在着创建一个虚拟网卡,随机一个新的MAC地址,每一个VPN连接建立时间分配给该卡的VPN软件。

+0

我想要的是主板上以太网控制器的MAC地址。这大概不会被VPN或其他任何东西弄乱。 – 2010-03-13 19:54:55

2

我不认为有任何可靠的方法来确定哪个接口是“稳定的”。当然,不是没有深入到硬件细节。

但是如果你以不同的方式接近这一点。您可以让用户从安装列表中选择界面,这可能不是非常用户友好的。或者只要记录系统中的所有MAC地址并进行身份验证,只要其中一个仍处于活动状态即可。

同样供参考,GetAdaptersInfo返回的顺序可以由用户从网络连接的高级设置菜单中更改。

+0

关于用户拖动他们的位并不让我高兴。但可能不是一个大问题;几乎没有人会这样做。 – 2010-03-13 19:55:42

1

我也面临同样的问题,并找到了不同的方法here

Windows将注册表中物理网卡的描述存储在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards中。 IP_ADAPTER_INFO结构的“描述”成员中也列出了相同的描述。所以我想我可以检查这个值是否在注册表中,以确定MAC地址是否属于物理网卡。