(17-08-2017, Saat: 16:55)Cyber Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol (16-08-2017, Saat: 14:36)frmman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba
İşlem yapan client bilgisayarların bazı bilgilerini veritabanında loglamak istiyorum. (IP, user, işletim sistemi versiyonu vb.)
Bu bilgiler ve çok daha fazlasını Jedi komponentleri içindeki TjvComputerInfoEx gösterebiliyor.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kullanmayı düşündüğüm yöntem, jedi ile seçtiğim sistem parametrelerini log tablosuna eklemek. (Bu kısım ile ilgili problem yok)
Jedi haricinde sistem bilgilerini elde etmek için kullandığınız daha farklı yöntemler varmı?
Merhaba hocam,
Log kaydı için yukarıda da belirttiğiniz gibi sistem bazında bazı bilgiler alınması gerekiyor(IP, user, işletim sistemi versiyonu vb.). Bunların dışında kalan Log türü,yapılan işlem açıklama gibi bilgiler ekleniyor sanırım. Bileşen yardımı ile log kaydı esnasında bu bilgileri tekrar tekrar mı elde ediyorsunuz. Ben de buna benzer log kaydı alıyorum fakat uygulamanın ilk açılış anında bu bilgileri alarak ortak bir alanda tutuyorum ve log kaydına da buradaki verileri alarak ekliyorum. Her defasında tekrar alıyorsanız, makinelerin farklı bir ip alması senaryosu üzerine mi bu yöntemi uyguluyorsunuz. Açıkçası bu kısmı merak ettim 
Log tutma uygulamanın veya yapılan projenin kapsamına göre değişir. Haliyle Log kaydı tetikleme mekanizmaları ve kayıt tipleride farklı olabilir.
Aynı uygulama için birden fazla log tablosuda tutulabilir. Login ve kullanıcı ile ilgili işlem logları, finansal değişiklik yapılan işlem logları vb.
Log kaydı tutulan verilerin hedeflediğiniz amaca uygun, işe yarar, anlaşılır veriler içermesi önemlidir. Bu veriler daha sonra sistem işlerliğini gözlemlemek, oluşabilecek hataları düzeltmek, bilinçli veya bilinçsiz yapılan bazı işlemlerde sorumlu kişinin tespit edilmesi vb işlemlerde kullanılabilir.
Ayrıca log kayıtları veritabanında tutulacaksa sorgulama işlemlerini kolaylaştıracak ve hızlandıracak şekilde db/tablo ayarları/tasarımı yapılmalıdır.
Yukarıdaki açıklamalarım şimdiye kadarki tecrübelerime dayanarak, loglama ile ilgili işlemlere genel bakış açımı ifade etmektedir. Sizin sorunuzda geçen "ip değişikliği ile log oluşturma" konusu şu an uğraştığım proje için çok kritik bir durum teşkil etmiyor. Yapılabilirmi ihtiyacımız varsa tabiki.
Yukarıdaki açıklamlarım çok genel bir çerçevede oldu.
Belki konuya katkı sağlayacak daha tecrübeli arkadaşların ilave edecekleri/düzeltecekleri noktalar vardır.
(18-08-2017, Saat: 14:35)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlJedi'nin hızını geçebilecek yoktur. Aslında muhafaza etmek istediğiniz verilerden biraz daha bahsederseniz belki alternatif çözümler sunulabilir. Şuanda User-Agent bilgileri olarak algıladım. Bunun dışında muhafaza edilecek bir bilgi var mıdır?
Aslında bende hangi verileri tutmam mantıklı olur, bu verileri daha kolay elde etmenin başka yolları varmı onları araştırıyordum. Bu noktada jedi sadece bir adet network kartının local ip sini verebiliyor. Veya ben öyle biliyorum. Bu ip de herzaman fiziksel bağlantının olduğu eth kartına ait olmayabiliyor. Sanal makinaların ethernet kart iplerde olabiliyor. Haliyle bir makinada birden fazla ethernet kartı olması durumunda var olan tüm iplerin tespit edilmesi durumu konuyu buralara kadar taşıdı.
Problemimi Jedi + Indy ikilisi ile çözmeye karar verdim.
Jedi sistem ile ilgili temel bilgiler
Indy eth ile ilgili bilgiler.
Yeri gelmişken indy ile tüm local ip leri aşağıdaki fonksiyon ile elde edilebiliyor.
{-------------------------------------------------------------------------------
INDY10 İLE Local IP ler listeleniyor
uses IdStack; kullanır
10.70.48.181
172.16.179.1
172.16.6.1
-------------------------------------------------------------------------------}
function LocalIPler(): string;
var sonuc:TStringList;
begin
sonuc := TStringList.Create;
TIdStack.IncUsage;
try
GStack.AddLocalAddressesToList(sonuc);
Result := sonuc.Text;
finally
TIdStack.DecUsage;
sonuc.Free;
end;
end;