Avatar billede cronck Nybegynder
03. maj 2004 - 18:13 Der er 19 kommentarer og
1 løsning

Ban i 10 min efter 5 minlykkede logins

Hej eksperter!
Nu har jeg virklig brug for en ekspert! :D
Jeg skal gøre så hvis en der bliver forsøgt at logge ind for eks. 5 gange fra en IP indenfor 5 min, skal ip'en bannes i 10 min..
Hvordan gør jeg det?
Avatar billede jwulff Nybegynder
03. maj 2004 - 18:23 #1
Hey

Hver gang en person logger ind logger du hans ip adresse samt tidspunktet.

Hvis den samme ip prøver at logge ind tjekker du hvor mange gange den befinder sig i databasen hvor tidspunktet er nu-tidspunktet - 5 min.

Hvis den tæller det til 5 kan du smide et banne tidspunkt ind i brugerens profil, og ip logsne slettes.

Så når han logger ind næste gang skal den så tjekker om der er gået 10 min fra banne tidspunktet.

Mvh
jWulff
Avatar billede cronck Nybegynder
03. maj 2004 - 18:29 #2
Ja, det er jeg klar over... :D
Men hvordan laver jeg den kode?
Avatar billede cronck Nybegynder
03. maj 2004 - 18:29 #3
Problemet ligger i at jeg ikke er særlig god til timing... :D
Avatar billede cronck Nybegynder
03. maj 2004 - 18:31 #4
Jeg kan ikke engang finde ud af at lave så man kan se om sine venner er online i mit community... :D
Avatar billede cronck Nybegynder
03. maj 2004 - 20:24 #5
Kan du ikke lave koden?
Avatar billede sukos Juniormester
03. maj 2004 - 20:27 #6
Brug sessions!
Første forsøg på logind, sætter du en session som er lig med tid.
Og for hver mislykket logind, opdatererr du den session.

Hvordan du kan arbejde med sessions i asp, aner jeg intet om.
Avatar billede cronck Nybegynder
03. maj 2004 - 20:28 #7
Jeg ved udemærket hvordan man arbejder med sessions, men jeg ved ikke hvordan man calculerer forskellen på tidspunkterne... :(
Avatar billede sukos Juniormester
03. maj 2004 - 20:29 #8
æhh, ved logind:
sæt session tid

Hvis der kommer nyt login, tjek om den første session er sat, og er den det, så lav en ny session, "tid2", som du kan bruge til at sammenligne op mod den første session tid
Avatar billede cronck Nybegynder
03. maj 2004 - 20:32 #9
ja, men hvordan beregner jeg forskellen på de tidspunkter?
Avatar billede cronck Nybegynder
03. maj 2004 - 20:33 #10
Og hvordan får jeg den til at fjerne det ban igen efter 10 min?
Avatar billede sukos Juniormester
03. maj 2004 - 20:34 #11
æhh, i PHP bruges f.eks. time() som er antal sek. siden 01-01-1970

$_SESSION["tid"] = time();
Avatar billede sukos Juniormester
03. maj 2004 - 20:38 #12
er da iøvrigt samme "ting" som du har afvist fra jwulff ???
Avatar billede cronck Nybegynder
03. maj 2004 - 20:57 #13
Ja, jeg ved jo stadig ikke hvordan jeg gør det?
Har ingen anelse om hvordan jeg laver det der med tiden, og fjerner igen efter den tid, i ASP...
Avatar billede mortency Nybegynder
04. maj 2004 - 09:38 #14
Har du tenkt på alle firmaer som kun har en IP adresse ut? Hvis en blir banned så vil det påvirke alle ansatte i en bedrift.

Lag en database med IP,TIME

Du kan jobbe ut ifra dette.....

Hent ip adressen og sett inn sammen med now()
<%
'Check login
If not adoRs.EOF Then
'Brukeren finnes i databasen dvs login
Else
Sql = "SELECT * FROM tblBannedIP where Opprettet < '" & DateAdd("n", -5, now) & "'"

If adoRs.EOF Then
  sql = "Delete from tblBannedIP where ip = '" & ipadresse & "'"
Else
  'ip var ikke banned check login
End if
End if
%>
Avatar billede cronck Nybegynder
04. maj 2004 - 09:45 #15
Det hjælper mig på vej, men den tjekker da ikke om brugeren har forsøgt at logge ind 5 gange?
Avatar billede mortency Nybegynder
04. maj 2004 - 10:32 #16
Det er jo bare å legge til en sql count
Avatar billede cronck Nybegynder
04. maj 2004 - 12:23 #17
Jeg har svært ved at forstå dig mortency... srry
Avatar billede mortency Nybegynder
04. maj 2004 - 13:37 #18
Her har du noen filer du kan ta utgangspunkt i:
http://www.ryanscool.com/archive/download/projects/banned.asp
http://www.aspemporium.com/aspEmporium/examples/restrictedAccess.asp
http://activedeveloper.dk/download/default.asp?mode=showdownload&id=610

Med sql count mener jeg at du skal telle antall forspørsler på en ip i databasen. Feks sql="select count(useriD) AS Antall from tblWronglogin where ip='" & ipadresse & "'"

If adoRs(Antall) < 5 Then

End if

OSv................
Avatar billede cronck Nybegynder
07. maj 2004 - 14:55 #19
Fandt faktisk selv ud af det via. MSDN library.... :D
Du får point anyway
Avatar billede mortency Nybegynder
10. maj 2004 - 12:10 #20
Fint om du legger ut linken til MSDN så andre kan finne ut hvordan du løste det!

Thanks for points... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester