ASP读取网卡MAC地址函数代码

作者:网络 来源:佚名 更新时间:2008-01-19 12:30:08 点击:

如何通过asp读取网卡mac地址呢?基本asp平台来读取mac地址需要两个系统关键的组件支持,“wscript.shell”和“scripting.filesystemobject”两个组件,不过,这两个组件的开放是相当危险的,因为很多的病毒脚本就是通过他们来控制主机权限的,在使用本功能时,要注意安全防范.

由于读取某ip的网卡mac地址 
本程序通过调用arp命令通过查询本机arp表读取特定ip的mac地址 
使用本程序需注意以下事项:  
 本程序需要“wscript.shell”和“scripting.filesystemobject”两个组件,请确保您的服务器可以正常使用这两个组件  
 本程序需要调用cmd.exe程序,请确保iis来宾帐号对程序有访问权限。  
 本程序需要临时文件保存结果,请确保iis来宾帐号对临时目录有写权限。  

函数代码如下:

以下是asp代码:

'来源:网页设计爱好者 html.org.cn
public function getmac(ip) 
on error resume next 
dim oscript 
dim ofilesys, ofile 
dim all, sztempfile,ipc,phyc,typec 
dim temppath 
set oscript = server.createobject("wscript.shell") 
set ofilesys = server.createobject("scripting.filesystemobject") 
temppath="d:\temp\" ’临时目录 
sztempfile = temppath & ofilesys.gettempname() ’ 获取临时文件名 
call oscript.run ("cmd.exe /c ping -n 2 " & ip, 0, true) ’保证arp表中有此ip 
call oscript.run ("cmd.exe /c arp -a " & ip & " > " & sztempfile, 0, true)  
set ofile = ofilesys.opentextfile (sztempfile, 1, false, 0) 
all=ofile.readall() 
ofile.close 
if (isobject(ofile)) then 
call ofilesys.deletefile(sztempfile, true) 
end if 
arr = split(all, vbcrlf) 
if ubound(arr) = 4 then 
ipc = instr(1, arr(2), "internet address") 
phyc = instr(1, arr(2), "physical address") 
typec = instr(1, arr(2), "type") 
if typec > phyc and phyc > ipc and ipc > 0 then 
getmac=ucase(trim(cstr(mid(arr(3), phyc, typec - phyc)))) 
end if 
end if 
end function