我用以下的语句,获取MAC :
create proc p_getlinkinfo
@dbname sysname=null,--要查询的数据库名,默认查询所有数据库的连接信息
@includeip bit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
as
declare @dbid int
set @dbid=db_id(@dbname) create table #tb(id int identity(1,1),dbname sysname,hostname nchar(128),loginname nchar(128),net_address nchar(12),net_ip nvarchar(15),prog_name nchar(128))
insert into #tb(hostname,dbname,net_address,loginname,prog_name)
select distinct hostname,db_name(dbid),net_address,loginame,program_name from master..sysprocesses
where hostname <>'' and (@dbid is null or dbid=@dbid) if @includeip=0 goto lb_show --如果不显示IP地址,就直接显示 declare @sql varchar(500),@hostname nchar(128),@id int
create table #ip(hostname nchar(128),a varchar(200))
declare tb cursor local for select distinct hostname from #tb
open tb
fetch next from tb into @hostname
while @@fetch_status=0
begin
set @sql='ping '+@hostname+' -a -n 1 -l 1'
insert #ip(a) exec master..xp_cmdshell @sql
update #ip set hostname=@hostname where hostname is null
fetch next from tb into @hostname
end update #tb set net_ip=left(a,patindex('%:%',a)-1)
from #tb a inner join (
select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20) from #ip
where a like 'Ping statistics for %:%') b on a.hostname=b.hostname lb_show:
select id,数据库名=dbname,客户机名=hostname,用户名=loginname
,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_name from #tb
GO 获取的MAC是系统发配的,因为我在系统修改了MAC后,查询分析器每次获取的是修改后的MAC,并不是真的MAC,请大侠指教怎样才能获取真正的MAC
create proc p_getlinkinfo
@dbname sysname=null,--要查询的数据库名,默认查询所有数据库的连接信息
@includeip bit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
as
declare @dbid int
set @dbid=db_id(@dbname) create table #tb(id int identity(1,1),dbname sysname,hostname nchar(128),loginname nchar(128),net_address nchar(12),net_ip nvarchar(15),prog_name nchar(128))
insert into #tb(hostname,dbname,net_address,loginname,prog_name)
select distinct hostname,db_name(dbid),net_address,loginame,program_name from master..sysprocesses
where hostname <>'' and (@dbid is null or dbid=@dbid) if @includeip=0 goto lb_show --如果不显示IP地址,就直接显示 declare @sql varchar(500),@hostname nchar(128),@id int
create table #ip(hostname nchar(128),a varchar(200))
declare tb cursor local for select distinct hostname from #tb
open tb
fetch next from tb into @hostname
while @@fetch_status=0
begin
set @sql='ping '+@hostname+' -a -n 1 -l 1'
insert #ip(a) exec master..xp_cmdshell @sql
update #ip set hostname=@hostname where hostname is null
fetch next from tb into @hostname
end update #tb set net_ip=left(a,patindex('%:%',a)-1)
from #tb a inner join (
select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20) from #ip
where a like 'Ping statistics for %:%') b on a.hostname=b.hostname lb_show:
select id,数据库名=dbname,客户机名=hostname,用户名=loginname
,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_name from #tb
GO 获取的MAC是系统发配的,因为我在系统修改了MAC后,查询分析器每次获取的是修改后的MAC,并不是真的MAC,请大侠指教怎样才能获取真正的MAC
解决方案 »
- 数据库还原问题
- 求sql server2000中的正则表达式
- 关于excel直接导入到数据库的问题~~~~谢谢
- 难!怎么屏蔽带标记的记录行?
- 找不到表
- 当某表特定的一条记录改变时,触发另一表特定的记录改变
- 在windows2003中,如何打开1433端口啊??? 急
- 急!!~~~~求救~~~~~SQL server下一不小心用了delete命令,然后还用其他数据导入该数据库,请问怎样还原?
- 我想学大型数据库,不知道如何下手,请指教!(只用过VFP6编写小型数据库)
- 这段SQL怎么写?(高分求解,题目不难)
- 用netstat -an 显示 1433端口在监听 但是telnet 127.0.0.1 1433 却提示连接失败
- 请教个查询语句
where hostname=left(@@servername,charindex( '\ ',@@servername+ '\ ')-1)
可能要用程序写,调用VMI来获取,
再在SQL调用dll,没啥思路
命令行:
wmic path win32_ComputerSystemProduct get uuid要访问远程计算机的
wmic /node:servername path win32_ComputerSystemProduct get uuid
但是要确保远程计算机的 135/tcp 端口开放,并且具有相应的访问权限