日期:2014-05-18  浏览次数:20453 次

怎么获取服务器的MAC地址,非本机的。
下边的语句
select   top   1   net_address   from   master..sysprocesses
where     hostname=left(@@servername,charindex( '\ ',@@servername+ '\ ')-1)
如果数据库在本地计算机上是可以获取MAC地址,
但是如果访问其他数据库就不能获取网卡地址,
不知道为什么?
请问怎么才能获取其他服务器上的mac地址?

------解决方案--------------------
语句没有问题。

返回结果也是正确的。

不论是本机服务器,还是远程的SQL Server服务器。

有什么问题?
------解决方案--------------------
exec master..xp_cmdshell 'ipconfig /all '
------解决方案--------------------
select top 1 net_address from master..sysprocesses
where hostname=left(@@servername,charindex( '\ ',@@servername+ '\ ')-1)

-----------------------------------
这个得到的只是第一个登陆用户的MAC地址,
想得到服务器的必须是服务器上有非系统进程在工作,并且你知道他的主机名或者进程号


------解决方案--------------------
create table #(str varchar(100))
insert # exec master..xp_cmdshell 'ipconfig /all '

select stuff(str,1,charindex( ': ',str), ' ')
from #
where ltrim(str) like 'IP Address% '
drop table #
------解决方案--------------------
物理地址

create table #(str varchar(100))
insert # exec master..xp_cmdshell 'ipconfig /all '
select * from #
select stuff(str,1,charindex( ': ',str), ' ')
from #
where ltrim(str) like 'Physical% '
------解决方案--------------------
create table #(str varchar(100))
insert # exec master..xp_cmdshell 'ipconfig /all '

select ltrim(replace(stuff(str,1,charindex( ': ',str), ' '), '- ', ' ' ))
from #
where ltrim(str) like 'Physical% '
drop table #
------解决方案--------------------
用sa连接试试。
------解决方案--------------------
学习
------解决方案--------------------
跟什么网卡没有关系
必须用sa登录
------解决方案--------------------
MARK