安価で怒っているISA 2006ログビューアおよびログアナライザー

良い時間、ハブラ

この記事では、ISA 2006ログを表示するためのオプションの1つについて説明しますが、その主な利点は、有料のソフトウェアを必要としないことです。



ログはMSDE形式で保存する必要があります。 次に、 SQL Server管理スタジオ (無料配布)をダウンロードしてインストールし、MSFWデータベースに接続します。

CYRILLの説明どおり

「リクエストの作成」を選択し、希望する日付のデータベースに接続してリクエストを作成します。次に例を示します。



SELECT ClientIP, ClientUserName, ClientAgent, bytesrecvd, bytessent, logTime, uri

FROM WebProxyLog

WHERE ClientIP='_ip_adress_' ORDER BY logtime ASC







リクエストは完了しましたが、完全な幸福のために、IPアドレスの代わりに「uri」列のホスト名と同様に、便利で理解しやすいIpv4に「ClientIP」を表示したいと思います。



そのため、記事に記載されている方法に従って、 `ClientIP`を修正します

T-SQLを使用してISAログのClientIPを解析する方法



無料の翻訳を引用します。



T-SQLを使用してISAログのClientIPパラメーターを処理する方法



多くの場合、クライアントから1つの質問があります-ISA ClientIPを使い慣れたIPv4形式に変換する方法。

ISAログにClientIPルールに関するドキュメントは見つかりませんでしたが、バイナリ式から変換されたLONG INT値であると確信していました。

このロジックに基づいて、変換ルールは次のようになります。



1.数値を32ビットのバイナリ式に変換します。

2.それを8ビットの4つのグループに分割します。

3.各グループを10進数値に変換し、ドットで区切ります。



ISAログのClientIP値を処理する次の関数を作成しました。



create function ufn_getIPAddr(@nIP bigint)

returns nvarchar(20)

as

begin

declare @binIP varbinary(4)

declare @h1 varbinary(1)

declare @h2 varbinary(1)

declare @h3 varbinary(1)

declare @h4 varbinary(1)

declare @strIP nvarchar(20)



SELECT @binIP = CONVERT(VARBINARY(4),@nIP )

select @h1 = SUBSTRING(@binIP,1,1)

select @h2 = SUBSTRING(@binIP,2,1)

select @h3 = SUBSTRING(@binIP,3,1)

select @h4 = SUBSTRING(@binIP,4,1)

select @strIP = CONVERT(nvarchar(3),CONVERT(int,@h1))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h2))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h3))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h4))

--print @strIP

return @strIP

end





create function ufn_getIPAddr(@nIP bigint)

returns nvarchar(20)

as

begin

declare @binIP varbinary(4)

declare @h1 varbinary(1)

declare @h2 varbinary(1)

declare @h3 varbinary(1)

declare @h4 varbinary(1)

declare @strIP nvarchar(20)



SELECT @binIP = CONVERT(VARBINARY(4),@nIP )

select @h1 = SUBSTRING(@binIP,1,1)

select @h2 = SUBSTRING(@binIP,2,1)

select @h3 = SUBSTRING(@binIP,3,1)

select @h4 = SUBSTRING(@binIP,4,1)

select @strIP = CONVERT(nvarchar(3),CONVERT(int,@h1))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h2))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h3))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h4))

--print @strIP

return @strIP

end







この機能の開始例:

dbo.ufn_getIPAddrを選択します(3232240156)

結果:

192.168.18.28


この記事はWacleの所有物です。

ご質問がある場合は、wacle.wang @ gmail.comまでお問い合わせください。




現在、ホスト名を扱っています。 再び、 CYRILL`aで発見

簡単なインストール手順:

1. HostLogger.dllをISA Serverのディレクトリにコピーします。

2.コマンドプロンプトで、以下を実行します。regsvr32 HostLogger.dll



ここで、データベースへのクエリを繰り返します。

[リクエストの作成]を選択し、目的の日付のデータベースに接続して、この機能を実行します。



create function ufn_getIPAddr(@nIP bigint)

returns nvarchar(20)

as

begin

declare @binIP varbinary(4)

declare @h1 varbinary(1)

declare @h2 varbinary(1)

declare @h3 varbinary(1)

declare @h4 varbinary(1)

declare @strIP nvarchar(20)



SELECT @binIP = CONVERT(VARBINARY(4),@nIP )

select @h1 = SUBSTRING(@binIP,1,1)

select @h2 = SUBSTRING(@binIP,2,1)

select @h3 = SUBSTRING(@binIP,3,1)

select @h4 = SUBSTRING(@binIP,4,1)

select @strIP = CONVERT(nvarchar(3),CONVERT(int,@h1))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h2))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h3))+'.'

+CONVERT(nvarchar(3),CONVERT(int,@h4))

--print @strIP

return @strIP

end








ここでも、「リクエストの作成」を選択し、希望する日付のデータベースに接続してリクエストを作成します。次に例を示します。



SELECT dbo.ufn_getIPAddr(ClientIP), ClientUserName, ClientAgent, bytesrecvd, bytessent, logTime, uri

FROM WebProxyLog

WHERE dbo.ufn_getIPAddr(ClientIP)='_ip_adress_' ORDER BY logtime ASC








そして、非常に消化しやすいデータを取得します。 この方法には欠点があります-サンプルを1日に制限することができます。

つまり その月のサンプルを取得するには、対応する数のデータベースを処理する必要があります。 ただし、個々のユーザーの統計をすばやく確認するには、この方法が非常に適しています。



All Articles