1:得到客户端的IP地址 /************* IP **************/ declare @ip varchar(20),@hst varchar(20),@sql varchar(100) declare @str varchar(100) set @str=''PING ''+Host_Name() create table #tmp(aa varchar(200)) insert #tmp exec master..xp_cmdshell @str select top 1 @ip = replace(left(aa,charindex('':'',aa)-1),''Reply from '','''') from #tmp where aa like ''reply from %:%'' drop table #tmp select @ip
2:得到网卡的物理地址 create table #tb(re varchar(255)) insert into #tb exec master..xp_cmdshell ''ipconfig /all''
select 网卡物理地址=substring(re,charindex('':'',re)+1,255) from #tb where re like ''%Physical Address. . . . . . . . . :%''
drop table #tb
3: 将IP地址段转成每三位用点号分开 create function getIP(@a varchar(15)) returns varchar(15) As begin declare @s varchar(15) set @s = '''' while charindex(''.'',@a) > 0 begin set @s = @s + right(''000'' + left(@a,charindex(''.'',@a)),4) set @a = right(@a,len(@a)-charindex(''.'',@a)) end set @s = @s + right(''000'' + @a,3) return @s end
/* Select dbo.getIP(''202.1.110.2'') --------------- 202.001.110.002
(所影响的行数为 1 行) */ --drop function getIP
关注此文的读者还看过:
- 2010-4-1 18:12:45 预防非法表D99_Tmp,kill_kk的建立
- 2008-4-23 15:53:39 SQL Server数据库超级管理员账号防护知识
- 2008-4-11 21:37:35 SQL Server 2005数据库镜像配置脚本示例
- 2008-4-4 9:12:54 讲解如何实现互联网上数据库的安全
- 2008-4-1 11:07:24 SQL 2005数据库转到SQL 2000的步骤讲解
- 2008-3-31 12:39:45 SQL Server自动生成日期加数字的序列号
- 2008-3-31 12:39:07 SQL Server 2000的数据库容量究竟是多大
- 2008-3-18 18:01:49 SQL Server 2005数据库的同义词Bug 讲解
|