27012701 发表于 2007-11-17 21:09:00

用lisp读取网卡序列号

<p>看了本论坛<a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62851">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62851</a></p><p>无痕版主的调用VBA办法读取CPU序列号,本人找了一遍,也没有找到读网卡的办法,,</p><p>用其doslib倒是可以,但我不想用ARX,只想用lisp完成(因为很容易被破解),请问大家,这个想法是否可以</p><p>最好有心人给出办法,</p><p>先谢了</p>

willsnow1982 发表于 2007-11-18 09:23:00

ET功能中的读写注册表可以完成LISP注册功能。可能对你的想法有帮助。

xshrimp 发表于 2007-11-18 18:49:00

<p><font size="3">;;获取网卡地址.<br/>;;Test OK with XP<br/>;;Use WMI to Get Networkadapter MAC.<br/>;;Author :&nbsp; eachy <br/>;;2005.11.22</font></p><p>(defun get-macaddress (/ mac WMIobj serv lox sn)<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq mac '())<br/>&nbsp; (if (SETQ WMIobj (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SETQ serv (VLAX-INVOKE<br/>&nbsp;&nbsp;&nbsp;&nbsp; WMIobj&nbsp;&nbsp;&nbsp;&nbsp; 'ConnectServer&nbsp;&nbsp;&nbsp;&nbsp; "."<br/>&nbsp;&nbsp;&nbsp;&nbsp; "<a href="file:///C:/DOCUME~1/zy/LOCALS~1/Temp/CyberArticle/root//cimv2">\\root\\cimv2</a>"&nbsp; ""&nbsp;&nbsp;&nbsp;&nbsp; ""<br/>&nbsp;&nbsp;&nbsp;&nbsp; ""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ""&nbsp; 128&nbsp;&nbsp;&nbsp;&nbsp; nil<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq lox&nbsp;(vlax-invoke<br/>&nbsp;&nbsp;&nbsp; serv<br/>&nbsp;&nbsp;&nbsp; 'ExecQuery<br/>&nbsp;&nbsp;&nbsp; "Select * From Win32_NetworkAdapter "<br/>&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-for&nbsp;item lox<br/>&nbsp;(if (and (= (vlax-get item 'NetConnectionID) "本地连接") ;_中文系统<br/>&nbsp;&nbsp; (not<br/>&nbsp;&nbsp;&nbsp;&nbsp; (member (setq sn (vlax-get item 'MACAddress)) mac)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setq mac (cons sn mac))<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (mapcar 'vlax-release-object (list lox serv WMIobj))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (reverse mac)<br/>)</p><!--Element not supported - Type: 8 Name: #comment-->

27012701 发表于 2007-11-18 19:39:00

谢谢大家,这样我就可以不用doslib啦

27012701 发表于 2007-11-18 19:49:00

还有一个问题,如果是多网卡怎么办呢?

JJL 发表于 2008-1-4 19:22:00

27012701发表于2007-11-18 19:49:00static/image/common/back.gif还有一个问题,如果是多网卡怎么办呢?

<p>我也想知道这个问题</p>

无痕 发表于 2008-1-4 20:45:00

本帖最后由 作者 于 2008-1-4 20:47:54 编辑 <br /><br /> <p>&nbsp;(vlax-for&nbsp;item lox<br/>&nbsp;(if (and (wcmatch (vlax-get item 'NetConnectionID) "*连接*") ;_中文系统<br/>....</p>

honxj 发表于 2008-1-4 20:53:00

<p>强!!!!</p>

jxlnlsh 发表于 2008-1-6 07:49:00

高手!!

egos 发表于 2011-4-26 09:06:58

(vlax-for item lox
(if (and (wcmatch (vlax-get item 'NetConnectionID) "*连接*") ;_中文系统
....
如果是多网卡 是不是会返回所有网卡的物理地址?
页: [1] 2
查看完整版本: 用lisp读取网卡序列号