根据进程号获取该进程所在客户端的ip地址

王朝mssql·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

根据进程号获取该进程所在客户端的ip地址

根据进程号获取该进程所在客户端的ip地址 create PROCEDURE dbo.SP_SPIDtoIP @SPID int

AS

-- SPID to MAC

-- lj

DECLARE @MAC as varchar(12)

SELECT @MAC = NET_ADDRESS FROM master..sysprocesses WHERE SPID = @SPID

-- MAC to IP

DECLARE @MACDisplay as varchar(18)

DECLARE @IP as varchar(15)

CREATE TABLE #temp (OUTPUT varchar(255) null)

SET NOCOUNT ON

INSERT INTO #temp EXEC master..xp_cmdshell 'arp -a'

if @@error0

begin

RAISERROR ('The level for job_id:%d should be between %d and %d.', 16, 1)

--ROLLBACK TRANSACTION

end

SELECT @MACDisplay = LEFT(@MAC, 2) + '-' + SUBSTRING(@MAC, 3, 2) + '-' + SUBSTRING(@MAC, 5, 2) + '-' + SUBSTRING(@MAC, 7, 2) + '-' + SUBSTRING(@MAC, 9, 2) + '-' + SUBSTRING(@MAC, 11, 2)SELECT @IP = SUBSTRING(output, 3, 15) FROM #temp WHERE output LIKE '%' + @MACDisplay + '%'

-- Resolve the IP

--DECLARE @CMD as varchar(100)

--select @CMD = 'master..xp_cmdshell "ping -a ' + @IP + '"'

--exec (@CMD)

DROP TABLE #temp

SET NOCOUNT OFF

GO

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航