如何转换ISA日志中的IP地址

ISA Server 2004将日志保存在MSDE或SQL Server中,采用的格式比较特殊,我们使用ISA自带的日志查看或报表功能可以看到熟悉的w.x.y.x格式IP,那是因为ISA在显示的时候经过了处理。但是如果我们需要自己定义日志查看或进行进一步的日志处理,其原有的格式就比较麻烦了。
本人提供了一个函数,可以方便的将ISA日志数据库里面的格式转换过来。具体如下:


--计算ISA日志中的IP地址
use master
go
create function ip(@in bigint) returns char(15)
as
begin
 declare @a bigint
 declare @b bigint
 declare @c int
 declare @d int
 declare @ip char(15)
 set @a=abs(@in/16777216)
 set @b=abs((@in-16777216*@a)/65536)
 set @c=abs((@in-16777216*@a-65536*@b)/256)
 set @d=@in-16777216*@a-65536*@b-256*@c
 set @ip=ltrim(str(@a))+char(46)+ltrim(str(@b))+char(46)+ltrim(str(@c))+char(46)+ltrim(str(@d))
 return @ip
end

posted on 2006-11-28 13:33  大智弱驴  阅读(1041)  评论(3编辑  收藏  举报

导航