We do not always find visible happiness in proportion to visible virtue

梦幻白桦林

SHARE

  开发者Cpp博客 :: 首页 :: 联系 :: 聚合  :: 管理
  14 Posts :: 58 Stories :: 62 Comments :: 0 Trackbacks

公告

常用链接

留言簿(5)

搜索

  •  

最新随笔

最新评论

阅读排行榜

 

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 @@error<>0 
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 

posted on 2007-07-23 20:37 colys 阅读(312) 评论(0)  编辑 收藏 引用