Asp | İp Log Tutma Dakikaya Göre?
-
Başlık pek bişey açıklamıyor tabii :)
Derdimi şöyle anlatayım;
Siteye giren ipleri tabloda tutuyorum. saat ve dakikası her sayfa yenileyişte update oluyor
eğer sayfayı 0 saniye içinde yenilemişse +1 ekletip 20 de by by diyorum üyeye. eğer hiç bi işlem yapmamış çıkmış gitmişse
aradan 2 saat geçtiyse siliyorum o veriyi db de yer tutmasın diye.
ama bu db olduğu için, bağlantı kur, kontrol et, update et zart zurt hem çok kastırıyor hemde birisi f5 e abanırsa kitleniyor..
ben bunu her giren üye için fso ile ayrı ayrı txt oluşturup txt adınıda üyenin ipsi koyarsam tüm sayfa yenilemelerini kayıt edersem
yoğunluğa göre db gibi aynen kastırıyor amacına ulaşmıyor..
:/ cookie session demeyin bana bunlardan başka ne yapabilirim? aklıma bişey gelmiyor..
veya fso ile txt ye
11:10:10
11:10:10
11:10:10
11:10:10
11:10:08
gibi aktiflik dakka saatlerini yazdırdığım zaman ben bunları çekip
11:10:10 (4 adet) 11:10:08 (1 adet) gibi nasıl kümelendirerek çeker veya bu şekilde kaydederim ?
bi akıl bi çare bana :)
-
Hoca bir seçenek var o da "tek yol devrim :P"
Şaka bir yana da, application uygulaması ile denesene. Elimde bir tane var onu (sen illa veritabanına yazacam diyorsan o ayrı) düzenledikten sonra verebilirim.
-
ben veri tabansız olsun diye uğraşıyorum zaten çaresizlikten veritabanlı yaptım idarelik :D .. application olayını denedim hatta konuda açtıydım ama inan applicationdan hiç bişey anlamadım kafam basmıyor ona :/
-
pesimistzombie bunu yazdı:
-----------------------------
ben veri tabansız olsun diye uğraşıyorum zaten çaresizlikten veritabanlı yaptım idarelik :D .. application olayını denedim hatta konuda açtıydım ama inan applicationdan hiç bişey anlamadım kafam basmıyor ona :/
-----------------------------Hocam merak etme anlamamakta yalnız değilsin, aynı dert bende de var. Ama onu düzenleyebilirim. Zaten portal yazıyorum onun içinde bu mevcut olacak. Oradan söküp alabilirsin.
-
:D hm saol.. aklıma bi fikir geldi onu yapmaya çalışcam şimdi :/
-
abi senin gibi psikopat bi istatistikci görmedim :/
ya her ip yi db ye ekle 15 dk hareket etmezse sil bu kadar basit, fsoymuş, bilmem neymiş ne karıştırıyon :/
-
:D foxxcum öyle yapıyorum zaten ama işte access kitleniyor kastırıyor dellendiriyor süründürüyor :D fazla kastırmayan ve sağlıklı çalışan bi olay lazım bana..
dikkat ettim f5 lamerliği yapınca db de kayıt en fazla +8 olurken aynı kodların fsolusunda +34 lere kadar çıkıyor.. zaten olay burda işte :D
-
txt fln kastırır en performanslı şekilde mssql server ve sql query çalışır... stored procedure kullan daha hızlı olur...
-
abü iyi güzel diyosunda ben zengin değilim 10 20 tane siteye ayrı ayrı mssql açamam :/ tek bi mssql içinde farklı tablolarda saklayabilirim belki ortak havuz gibisine bi araştırayım bakayım o da dert olcak bana her yeni site açtığımda tablo yarat kodlarla oyna filan :/ başka yokmudur çözüm mesela şu application ? onun üzerinde çalışıyorum hala :/ php ye geçesim var..
-
<%
'##########################################################
if Len(Hour(Now))=1 Then
saat=0
saat=saat&Hour(now)
Else
saat=Hour(Now)
End if
if Len(Minute(Now))=1 Then
dakika=0
dakika=dakika&Minute(now)
Else
dakika=Minute(Now)
End if
if Len(Second(Now))=1 Then
saniye=0
saniye=saniye&Second(now)
Else
saniye=Second(Now)
End if
'##########################################################
zaman=saat&dakika&saniye
GateIP = Request.Servervariables("REMOTE_ADDR")
'##########################################################
Sub TertemizGate
Gatesilmezamani = 1
GateniDeAldaGit = 12000
If Application("FloodGate") = "" Then Exit Sub
If DateDiff("n", Application("BuSonSilisim"), Now()) > Gatesilmezamani Then
Application.Lock
Application("BuSonSilisim") = Now()
Application.Unlock
GateleriBol = Split(Application("FloodGate"), "|")
For ix = 0 To UBound(GateleriBol)-1
If right(GateleriBol(ix),6)<zaman-GateniDeAldaGit Then
TezSilinDatasini=TezSilinDatasini&Replace(GateleriBol(ix), GateleriBol(ix), "|")
end if
Next
Application.Lock
Application("FloodGate") = TezSilinDatasini
Application.UnLock
end if
end sub
'##########################################################
If not InStr(Application("FloodGate"), Request.Servervariables("REMOTE_ADDR"))>0 Then
Application.Lock
Application("FloodGate")=Application("FloodGate")&Request.Servervariables("REMOTE_ADDR")&":"&zaman&"|"
Application("ToplamGate")=Application("ToplamGate")+1
Application.UnLock
else
GateleriBol = Split(Application("FloodGate"), "|")
For ix = 0 To UBound(GateleriBol)
If InStr(GateleriBol(ix), zaman)>0 Then
listeyeal = Split(GateleriBol(ix), ":")
Application.Lock
Application("karaliste") = Application("karaliste")&listeyeal(0)&"|"
Application.UnLock
end if
Next
GateciBas = Instr(1, Application("FloodGate"), Request.Servervariables("REMOTE_ADDR"))
GateciSon = Instr(GateciBas, Application("FloodGate"), "|")
GateciBul = Mid(Application("FloodGate"), GateciBas, GateciSon)
Application.Lock
Application("FloodGate") = Replace(Application("FloodGate"), GateciBul, Request.Servervariables("REMOTE_ADDR")&":"&zaman&"|")
Application.UnLock
End If
'##########################################################
call TertemizGate()
response.write Application("FloodGate")
response.write Application("karaliste")
%>Beynim sulandı kaç saattir ama elimden kaçamadı :D
eğer ip floodgate havuzunda yoksa ip ve saati aldırıp ekletiyorum. eğer varsa zamanını güncelleştiriyorum.
Daha sonra saate göre 0 saniye içinde yenileme olmuşsa karaliste havuzuna alıyorum.
belirlediğim zaman içinde de floodgate havuzunun içindeki aktif olmayan ipleri sildiriyorum. oraya bide dakka koydumki şimdilik ince ayar çekmedim,
hani havuz çok dolu olursa zamana bakmadan düzenli şekilde boşaltsın.
şimdilik bana sorunsuz yaptım gibi geldi mantık hatalarım vs olabilir bilmiyorum ama denemelerim olumlu sonuç verdi.
kara listeyide artık normal üyelerde güme gitmesin diye ipnin kaç kez kara listeye girdiğini saydırıp ona göre şutlarım
-
GateniDeAldaGit
hey yawrum bee tayyip ne hallere düştün :D
abi mysql kullan taş gibi (: ne kasma var ne bişi . tertemiz internet ttnet ttnet :)