IP; 合法性 ;要 考虑 (@logonip)是这个数值之间 1-255;
例如:198.89.121.212
创建声明
````````
@logonip varchar(15)
有哪位大侠知道 请接着这句写! 在线等!
其实可以用正则表达式。
这里写了一个比较体的办法:
Create procedure CheckIPAddress
(@logonip nvarchar(15)
,@result int output)
as
Declare @temp nvarchar(4)
Declare @num int
set @logonip=ltrim(rtrim(@logonip))
if (len(@logonip)>15)
goto ErrorResult
while(charindex('.',@logonip)>0)
begin
set @temp=substring(@logonip,1,charindex('.',@logonip)-1)
print '@temp='+@temp
IF (ISnumeric(@temp)=1)
begin
set @num=cast(@temp as int)
end
else
goto ErrorResult
if(@num<0 or @num>255)
goto ErrorResult
set @logonip=substring(@logonip,charindex('.',@logonip)+1,len(@logonip)-charindex('.',@logonip)+1)
end
IF (ISnumeric(@logonip)=1)
begin
set @logonip=cast(@logonip as int)
end
else
goto ErrorResult
set @result=1
print '合法'
return @result--验证合法
ErrorResult:
set @result=-1;
print '非法'
return @result--验证非法
GO
CheckIPAddress '134.1899.1.73',-1