安価で怒っている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