Avatar billede mikevi Nybegynder
07. juni 2005 - 22:25 Der er 45 kommentarer og
1 løsning

IP ban system i ASP.

Hej alle sammen derude.

Jeg vil meget gerne høre om der er en eller flere der kan hjælpe mig med et IP ban system - helst i ASP.

Det skal helst fungere sådan:

Man trykker på et link hvor man kommer videre til en side hvor selve scriptet er. Så er der en box hvor man skriver IP'en i. Nu skulle han/hun være IP bannet fra siden.
Avatar billede larsbachmanndk Nybegynder
07. juni 2005 - 22:36 #1
Avatar billede mikevi Nybegynder
07. juni 2005 - 22:38 #2
Okay jeg kigger lige på det. TAK. Men skriv endlig videre vis i har andre ideer.
Avatar billede larsbachmanndk Nybegynder
07. juni 2005 - 22:40 #3
UPS...
Har lige tjekket og der er ingen af disse links der virker mere.. beklager
Avatar billede mikevi Nybegynder
07. juni 2005 - 22:42 #4
Nej det fandt jeg nemlig lige ud af. He
Avatar billede hostgirl Nybegynder
07. juni 2005 - 22:49 #5
Avatar billede larsbachmanndk Nybegynder
07. juni 2005 - 22:49 #6
Men hvis man skal lave det selv, er det vel noget i denne stil

<%
badIP = "127.0.0.1"

If Request.ServerVariables("REMOTE_ADDR") = badIP Then
    Response.Write "Du har ikke adgang"
Else
%>


Her kommer noget indhold

<%
End If
%>
Avatar billede mikevi Nybegynder
07. juni 2005 - 22:58 #7
Andre ideer.?
Avatar billede mikevi Nybegynder
07. juni 2005 - 23:29 #8
larsbachmanndk > den kode du gav mig kan du forklare hvordan jeg skal håndtere den.

I må meget gerne skrive nogle flere eks. retter sagt ideer.
Avatar billede musti776 Nybegynder
08. juni 2005 - 00:34 #9
den nemmeste løsning vil være at du f.eks. bruger acces til at gemme oplysninger i...
du har en side hvor du indtaster den ip nummer som skal bannes,f.eks. formular.asp:
--------------
<form method="post" action="formular.asp?send=ip">
<input name="ip" type="text" id="ip">
<input type="Submit" name="Submit" value="Ban IP">
</form>

<%
Set Sur = Server.CreateObject("ADODB.Connection")
Sur.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")

send = Request.QueryString("send")

if send="ip" then
call ip
else
end if
%>

<%sub ip
Set Sur = Server.CreateObject("ADODB.Connection")
Sur.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")

Set tilfoj = server. CreateObject("ADODB.Recordset")
gem = "Select * from ipban"
gir.Open gem,sur,1,3

Dim ip

ip = request.form("ip")
tilfoj.AddNew
tilfoj("ip") = ip
tilfoj.Update

response.Redirect("dinside.asp")
response.end
%>
<%
end if
end sub
%>

<%
sur.Close
Set sur = Nothing
%>
--------------------

og på den side hvor brugeren ikke skal have adgang til tilføjer du:
<%
set conn=server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
SQL = "select * from dintabel where ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'"

if not rs.eof then
response.write "Ingen adgang!!!!!"
response.end
set rs=Conn.Execute(SQL)
%>

jeg ved ikke lige om det kommer til at virke.. har leget lidt med koden undervejs.. men du kan da lige prøve engang :o)
Avatar billede busschou Praktikant
08. juni 2005 - 07:27 #10
Bare nysgerrig for ønsket af IP ban ?
I mine øjne er det en "farlig" ting da utrolig mange sidder flere bag samme IP på arbejdspladser og biblioteker mm
Endvidere med trådløs teknologi går flere og flere på nettet med DHCP servere hvorved de får en midlertidig IP som så skifter og lidt efter tilhører en anden bruger.
Mao. risikerer man at spærre for folk som slet intet har gjort galt samtidig med der stadig er åbent for folk som gør noget galt.

Passwords beskyttelse ville jeg selv foretrække men det er jo så ikke sikker at det ville virke i dit tilfælde :o)
Nå men det var bare lidt tanker :o)
Avatar billede mikevi Nybegynder
08. juni 2005 - 13:00 #11
musti776 > Kunne du ikke lave en ZIP fil med database ovs. er ikke helt god til det med at sætte det ind ö
Avatar billede musti776 Nybegynder
08. juni 2005 - 14:06 #12
jeg gøre det når jeg engang kommer hjem i aften :o)
Avatar billede mikevi Nybegynder
08. juni 2005 - 15:35 #13
Det er iorden. Du kan skrive her når du engang bliver færdig :)
Avatar billede larsbachmanndk Nybegynder
08. juni 2005 - 15:48 #14
Her ligger et færdig system http://www.larsbachmann.dk/exp/ipban.rar

Men jeg har brugt musti776's kode, så han skal have point
Avatar billede mikevi Nybegynder
08. juni 2005 - 21:56 #15
Øhh den kommer i RAR fil - vil meget gerne have den i en ZIP fil. For så er den lige til at uploade.
Avatar billede larsbachmanndk Nybegynder
08. juni 2005 - 21:59 #16
øjeblik så :-)
Avatar billede larsbachmanndk Nybegynder
08. juni 2005 - 22:02 #17
Jeg har desværre ikke winzip installeret på denne maskine, men du skal vel også pakke den ud inden du uploader den, da du skal inkludere en fil på de sider hvor der skal "IPbannes"
Avatar billede larsbachmanndk Nybegynder
08. juni 2005 - 22:02 #18
ellers må du selv hente den, og så pakke den som ZIP
Avatar billede mikevi Nybegynder
08. juni 2005 - 22:29 #19
Det er meningen jeg henter den som en ZIP fil - så pakker jeg den ud. Og så lægger jeg det direkte ind.
Avatar billede submann Nybegynder
14. juni 2005 - 01:19 #20
Jeg lavede engang for lang tid siden dette til en anden, brug det hvis du vil...
(Hvis der er fejl så sig til...)

********** BanBruger.asp **********

<table ALIGN="left" BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="*">
<tr>
  <td VALIGN="top">
  <form action="BanBrugerOK.asp" method="POST">
  <b>IP adressen:</b>
  </td>
  <td VALIGN="top">
  <input type="text" name="ip"><br>
  </td>
</tr>
<tr>
  <td VALIGN="top">
  <b>Grund:</b>
  </td>
  <td VALIGN="top">
  <input type="text" name="grund"><br>
  </td>
</tr>
<tr>
  <td VALIGN="top">
  <b>Ban til:</b>
  </td>
  <td VALIGN="top">
  <input type="text" name="ToDate"><br>
  </td>
</tr>
<tr>
  <td VALIGN="top">
  <b>Min mail adr:</b>
  </td>
  <td VALIGN="top">
  <input type="text" name="BanAfMail"><br>
  </td>
</tr>
<tr>
  <td VALIGN="top">
  <input type="submit" value="Ban"></form>
  </td>
</tr>
</table>


********** BanBrugerOk.asp **********

<!-- #include virtual="/_includes/database.asp" -->
<%
' ******************************************
' ****** Development and Copyright by ******
' ******************************************
' *************** Submann.dk ***************
' ******************************************
' *** Please keep these line in the code ***
' ******************************************

' Hvis brugeren har trykket på knappen
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then

' Opret nogle variabler
Dim strSQL
Dim Ip
Dim Grund
Dim ToDate
Dim BanAf
Dim BanAfMail

' Er der skrevet noget i ip feltet?
If (Request.Form("Ip") <> "") Then

' Er der skrevet noget i grund feltet?
If (Request.Form("Grund") <> "") Then

' Er der skrevet noget i ToDate feltet?
If (Request.Form("ToDate") <> "") Then

' Er der skrevet noget i mail feltet?
If (Request.Form("BanAfMail") <> "") Then

' Så sikre vi os lige at variablerne er tomme inden vi går i gang
Ip = ""
BanAf = ""
ToDate = ""
Grund = ""
BanAfMail = ""

' Hent data fra formular
ip = Request.Form("ip")
grund = Request.Form("grund")
ToDate = Request.Form("ToDate")
BanAfMail = Request.Form("BanAfMail")

' Henter brugernavn via session
BanAf = Session("Brugernavn") ' Eller Session("UserName") eller hvad du nu bruger i din login
' Hvis du ikke bruger login skal dette tilføjes i BanBruger.asp:
' <td VALIGN="top">
' <b>Mit brugernavn:</b>
' </td>
' <td VALIGN="top">
' <input type="text name="BanAf""><br>
' </td>
' </tr>
' og dette skal rettes: BanAf = Session("Brugernavn") til BanAf = Request.Form("BanAf")

strSQL = "INSERT INTO ban (Ip, Grund, ToDate, BanAfMail, BanAf) VALUES ('" & ip & "','" & grund & "','" & ToDate & "','" & BanAfMail & "','" & BanAf & "')"

' Så udfører vi strSQL
objConn.Execute strSQL

' Så skal vi lige se hvad vi har lavet
Response.Write "Ip " & "<B>" & ip & "</B>" & " er blevet tilføjet listen over banned ip´er" & "<br>" & vbCrLf
Response.Write "Ip´en er blevet banned af " & "<B>" & BanAf & "</B>" & " med mail adr: " & "<B>" & BanAfMail & "</B>" & "" & "<br>" & vbCrLf
Response.Write "Ip´en blev banned med denne grund: " & "<B>" & Grund & "</B>" & "" & "<br>" & vbCrLf
Response.Write "Ip´en er blevet banned til: " & "<B>" & ToDate & "</B>" & "" & vbCrLf

' Hvis der ikke er skrevet noget i mail feltet
else
Response.Write "Du mangler at indtaste en mail adresse..." & vbCrLf
End if

' Hvis der ikke er skrevet noget i ToDate feltet
else
Response.Write "Du mangler at indtaste hvor længe ip´en er banned..." & vbCrLf
End if

' Hvis der ikke er skrevet noget i grund feltet
else
Response.Write "Du mangler at indtaste en grund..." & vbCrLf
End if

' Hvis der ikke er skrevet noget i ip feltet
else
Response.Write "Du mangler at indtaste en ip..." & vbCrLf
End if

' Afslut om der er trykket på knap check
else
Response.Write "Der er ikke trykket på knappen !!!" & vbCrLf
Response.Write "<br>" & "Så hvordan er du lige kommet ind på denne side ?" & vbCrLf
End If

%>


********** TjekBruger.asp **********

<!-- #include virtual="/_includes/database.asp" -->

<%

Set ObjRS = ObjConn.Execute("SELECT * FROM Ban WHERE ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'")

If NOT ObjRS.EOF then
  If ObjRS("ToDate") > Date() Then
    Dim ip
    ip = ""
    ip = Request.QueryString("ip")

    strSQL = "DELETE * FROM ban WHERE Ip = '" & ip & "'"
    objConn.Execute strSQL
  Else
    Response.Redirect "Banned.asp"
  End If

End if

' Husk at lukke
objRS.Close
' og rydde op
Set objRS = Nothing

%>


********** Banned.asp **********

<!-- #include virtual="/_includes/database.asp" -->
<%
' ******************************************
' ****** Development and Copyright by ******
' ******************************************
' *************** Submann.dk ***************
' ******************************************
' *** Please keep these line in the code ***
' ******************************************

' Opret variable(r)
Dim objRS

Set objRS = objConn.Execute("SELECT BanAf, ToDate, Grund, BanAfMail FROM ban WHERE ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'")

Response.Write "Du er blevet banned fra Jon-Dahl.tk!" & "<br>" & vbCrLf
Response.Write "Du blev banned af: " & ObjRS("BanAf") & "" & "<br>" & vbCrLf
Response.Write "Du blev banned til: " & ObjRS("ToDate") & "" & "<br>" & vbCrLf
Response.Write "Grund til banning: " & ObjRS("Grund") & "" & "<br>" & vbCrLf
Response.Write "<br>" & "<br>" & "Du kan kontakte <A HREF=""mailto:" & ObjRS("BanAfMail") & """>" & ObjRS("BanAfMail") & "</A>" & " hvis du ikke mener det er fair."

' Husk at lukke
objRS.Close
' og rydde op
Set objRS = Nothing

%>


********** liste.asp **********

<!-- #include virtual="/_includes/database.asp" -->
<%
' ******************************************
' ****** Development and Copyright by ******
' ******************************************
' *************** Submann.dk ***************
' ******************************************
' *** Please keep these line in the code ***
' ******************************************

' Opret variable(r)
Dim objRS

Set objRS = objConn.Execute("SELECT * FROM ban")

' Et lille check på om vi fik records ...
If (Not objRS.BOF) And (Not objRS.EOF) Then
' vi fik mindst én record
objRS.MoveFirst ' flyt til den første
Response.Write "<CENTER>" & "<H1>" & "Her er listen over ip adresser der er banned" & "</H1>" & "<P>" & vbCrLf
While Not objRS.EOF
Response.Write "<H3>" & "<U>" & ObjRS("Ip") & "</U>" & "</H3>" & "<P>" & vbCrLf
Response.Write "<B>" & "Grund: " & "</B>" & ObjRS("Grund") & "<br>" & vbCrLf
Response.Write "<B>" & "Banned til: " & "</B>" & ObjRS("ToDate") & "<br>" & vbCrLf
Response.Write "<B>" & "Banned af: " & "</B>" & ObjRS("BanAf") & "<br>" & vbCrLf
Response.Write "<B>" & "Mail adr: " & "</B>" & ObjRS("BanAfMail") & "<br>" & vbCrLf
Response.Write "<a href=""Slet_ip.asp?ip=" & objRS("ip") & """>" & "Slet" & "</a>" & vbCrLf
Response.Write "<HR>" & vbCrLf
objRS.MoveNext ' hent næste record
Wend ' overstået
Response.Write "</CENTER>" & vbCrLf
' Hvis der ikke er nogle på listen
else
Response.Write "<CENTER>" & "<H1>" & "Listen er tom..." & "</H1>" & "</CENTER>" & vbCrLf
End If

' Husk at lukke
objRS.Close
' og rydde op
Set objRS = Nothing

%>


********** Slet_ip.asp **********

<!-- #include virtual="/_includes/database.asp" -->
<%
' ******************************************
' ****** Development and Copyright by ******
' ******************************************
' *************** Submann.dk ***************
' ******************************************
' *** Please keep these line in the code ***
' ******************************************

Dim ip
ip = ""
ip = Request.QueryString("ip")

strSQL = "DELETE * FROM ban WHERE Ip = '" & ip & "'"
objConn.Execute strSQL

Response.Write "Ip " & ip & " er nu blevet slettet fra listen..." & "<P>" & vbCrLf
Response.Write "<a href=""liste.asp"">" & "Tilbage" & "</a>" & vbCrLf
%>
Avatar billede mikevi Nybegynder
14. juni 2005 - 22:54 #21
submann > Det må jeg sige, men fatter brik af det.

Nogen andre der vil sende det som en ZIP fil.
Avatar billede mikevi Nybegynder
14. juni 2005 - 22:58 #22
Eller sorry submann, hvis du vil lave sende det i en ZIP fil så værsgod bare send link.
Avatar billede submann Nybegynder
15. juni 2005 - 22:39 #23
Tjaa mikevi, nu da jeg har fundet ud af hvem du og hvor meget du fusker folk har jeg ingen interesse i at hjælpe dig mere...

Fortryder faktisk jeg kom med det indlæg...
Avatar billede mikevi Nybegynder
16. juni 2005 - 16:28 #24
Øh.
Avatar billede mikevi Nybegynder
16. juni 2005 - 16:30 #25
Fusker folk.?
Avatar billede busschou Praktikant
16. juni 2005 - 17:35 #26
submann >> kunne du ikke lige dokumentere dine udtalelser ? også for vores andres skyld
Avatar billede mikevi Nybegynder
17. juni 2005 - 12:25 #27
busschou > det har ganske enkelt noget at gøre med at han TROR jeg snyder på www.solutions2all.dk/ og mener jeg har "mikevi" derinde også.

Så TROR han også fordi folk ikke får point er det fordi at jeg ikke gider, men det simpelthen fordi det ikke virker. Eller også kommer de med et eller andet mærkeligt svar som jeg slet ikke bad om. Andet handler det ikke om.

Jeg syntes det er latterligt at submann skal prøve at forhindre mig i at få hjælp herinde og inde på http://www.solutions2all.dk/ bare fordi det ikke virker. Og når jeg har skrevet det ikke virker, svarer folk ikke mere. Totalt meningsløst.
Avatar billede submann Nybegynder
17. juni 2005 - 12:36 #28
Beklager jeg først læser det nu, af en eller anden grund får jeg ikke mail fra eksperten.dk

Jo det kan jeg da godt...

www.solutions2all.dk findes mikevi også, bare under navnet lukum.
Der findes også en mikevi på http://www.solutions2all.dk
Jeg (Jeg er ikke den eneste) mener at lukum og mikevi er en og samme person på S2all

Jeg ved at lukum fra S2all og mikevi her fra er en og samme person
Bevis: Her bliver det indrømmet http://www.solutions2all.dk/forum_spm.asp?id=13899

På S2all har lukum selv taget point for det andre har lavet for ham, også selv om det virker...

Det eneste han har lukket her har han også selv taget point for: http://www.eksperten.dk/spm/624536

Derfor mener jeg at han fusker folk...
Eller hvad ??
Avatar billede busschou Praktikant
17. juni 2005 - 13:03 #29
ok kan da kun give dig ret, i hvert fald med den bemærkning han giver på det ene spørgsmål på exp du refererer til
Avatar billede mikevi Nybegynder
19. juni 2005 - 16:45 #30
submann > den eneste der "fusker" folk her er fandeme dig. Hvordan pokker kan du få dette spørgsmål til at jeg "bare" lukker det. Skrev manden måske et svar nææh men kommemtarer hvad pokker tror du ellers man skal gøre.

http://www.eksperten.dk/spm/624536

Helt ærligt brug tænke tanken lidt.
Avatar billede submann Nybegynder
19. juni 2005 - 17:32 #31
Så til næste gang skal du måske prøve at skrive noget ala dette:

Det virker, Tak.
Lig et svar hvis du vil have point...

Som du sikkert har set står det i 1000 vis af andre spørgsmål som ikke indeholder et svar...

Så måske det var dig der skulle prøve at tænke lidt, det er nok det du får mest ud af...
Avatar billede mikevi Nybegynder
19. juni 2005 - 18:17 #32
Hmm. Manden kan vel tænke selv, tror du ikke.
Avatar billede busschou Praktikant
19. juni 2005 - 18:41 #33
mikevi >> jeg kan kun være enig i at det ikke er særligt "høfligt" skrevet det du har haft skrevet...uanset hvad
Anyway så mener jeg så stadig at IP ban er noget hø da man risikerer ramme uskyldige...så hellere lave et Ban på brugernavnet
Avatar billede mikevi Nybegynder
19. juni 2005 - 19:03 #34
busschou > God ide. Jeg opretter et spørgsmål om hvordan man banner brugernavne.

Det kan godt være med mit sprog, men jeg acceptere ikke folk der ligger skylden over på andre.

Ang. ban brugernavne, jeg skal først have point til at kunne det ;D
Avatar billede busschou Praktikant
19. juni 2005 - 20:26 #35
først have point? den forstod jeg ikke??
Hvis en bruger skal logge ind for at få adgang, ja så har du jo en database
I tabellen tilføjer du et felt "ban" som kan være True eller False ,,,eller "ja"/"nej"
Når du vil banne en sætter du feltet til True
Du søger for at lave dit login system om så du vælger personen ud som normalt
Hvis rs("ban") = True så skriver du "du er blevet banlyst pga dårlig opførsel" eller lign
Avatar billede mikevi Nybegynder
19. juni 2005 - 20:55 #36
Ja altså, jeg skal først have nogle flere point her inde for at der er nogen der gider.

Og jeg fatter brik af det du skriver der..
Avatar billede mikevi Nybegynder
19. juni 2005 - 20:57 #37
Hvis jeg nu ZIP komprimere min database, så kan du prøve at gøre det du beskrev..
Avatar billede busschou Praktikant
19. juni 2005 - 20:57 #38
nårh , 100point er vel nok herinde - synes jeg!
Hvis det er samme side som du har givet mig link til hvor man logger ind så bruger du vel allerede en database med brugernavne og login ?
Avatar billede busschou Praktikant
19. juni 2005 - 20:58 #39
Du skal bare lave et ekstra felt i den tabel hvor du har brugernavn og kodeord - lav et ekstra felt "ban" som kan være True eller False
Avatar billede busschou Praktikant
19. juni 2005 - 21:01 #40
Når brugeren logger ind så har du allerede en sql ala
Select * From tabel where user = "&request.form("navn")&" and pass = "&request.form("pass")
Altså noget i den dur må du allerede have ikke ? :o)
Så har du sikkert også en
set rs=conn.execute(sql)
if not rs.eof then
  //så er brugeren fundet
else
  // så er brugeren ikke fundet
end if
--
Den kan du lave om til
--
if not rs.eof then
  if rs("ban") = True then
    response.write("du er blevet banned")
  else
    //bruger ok
  end if
else
  // så er brugeren ikke fundet
end if
Avatar billede mikevi Nybegynder
20. juni 2005 - 16:55 #41
Jeg fatter ikke det der.. Måske du ville svare på det spørgsmål omkring databasen..
Avatar billede mikevi Nybegynder
27. juni 2005 - 20:34 #42
Jeg lukker det her.
Avatar billede submann Nybegynder
27. juni 2005 - 23:09 #43
Og der kom bevis for min påstand...
Avatar billede larsbachmanndk Nybegynder
28. juni 2005 - 08:54 #44
sørme...
Avatar billede mikevi Nybegynder
28. juni 2005 - 15:10 #45
Lille bitte submann > Kom der nogen svar eller hvad, din lille pestilens. Du skal bare lukke krydderen i.

Der gik en hel uge, uden svar..

LUUUK DIN KÆFT..
Avatar billede submann Nybegynder
28. juni 2005 - 21:43 #46
Der er op til flere brugbare svar her på siden...

Men jeg gentager så lige mig selv...

Kommentar: submann
19/06-2005 17:32:20
Så til næste gang skal du måske prøve at skrive noget ala dette:

Det virker, Tak.
Lig et svar hvis du vil have point...

Som du sikkert har set står det i 1000 vis af andre spørgsmål som ikke indeholder et svar...

Så måske det var dig der skulle prøve at tænke lidt, det er nok det du får mest ud af...
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