zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

可以获取客户端的IP地址的sql语句

SQL客户端 获取 语句 可以 IP地址
2023-06-13 09:14:14 时间
--1:得到客户端的IP地址
/*************IP**************/
declare@ipvarchar(20),@hstvarchar(20),@sqlvarchar(100)
declare@strvarchar(100)
set@str="PING"+Host_Name()
createtable#tmp(aavarchar(200))
insert#tmpexecmaster..xp_cmdshell@str
selecttop1@ip=replace(left(aa,charindex(":",aa)-1),"Replyfrom","")
from#tmpwhereaalike"replyfrom%:%"
droptable#tmp
select@ip


--2:得到网卡的物理地址
createtable#tb(revarchar(255))
insertinto#tbexecmaster..xp_cmdshell"ipconfig/all"

select网卡物理地址=substring(re,charindex(":",re)+1,255)from#tbwhererelike"%PhysicalAddress.........:%"

droptable#tb
go


--3:将IP地址段转成每三位用点号分开
createfunctiongetIP(@avarchar(15))
returnsvarchar(15)
As
begin
declare@svarchar(15)
set@s=""
whilecharindex(".",@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

/*
Selectdbo.getIP("202.1.110.2")
---------------
202.001.110.002

(所影响的行数为1行)
*/
--dropfunctiongetIP