webForumDet fria alternativet

Neka IP-Access

ASP

8 svar · 349 visningar · startad av SoulGod

Medlem sedan aug. 20051 200 inlägg
Frågan#1

Hej.
Jag har byggt en gästbok, som har standard fält (namn , mail, url, meddelande och ip).

Och allt funkade bra, tills sidan började åka i besökare,
nu har man fått väldigt mycket "dåliga" inlägg,
spam m.m.

Och jag vill nu kunna blockera ett visst IP från att gå in och skriva mer..
Går det, och hur?

Medlem sedan dec. 19996 721 inlägg
#2

Blocka i IIS:en eller kolla Request.ServerVariables("REMOTE_ADDR")

Medlem sedan aug. 20051 200 inlägg
#3

Okej, har gjort ett extremt tydligt exempel här.

<% Option Explicit %> 
<% Dim get_IP %>
<% 
get_IP = Request.ServerVariables("REMOTE_ADDR")
%>
<%
If get_IP = "81.231.112.21" or "81.231.112.20" THEN %>
<% Response.Redirect("deny2.asp") %>
<% Else %>
<% Response.Write(get_IP) %>
<% End If %>

Det jag nu har lite problem med, är att jag vill att den ska söka igenom
en databas efter olika IP, och göra samma funktion.

hur?

Medlem sedan feb. 20032 027 inlägg
#4

SoulGod skrev:

Okej, har gjort ett extremt tydligt exempel här.

<% Option Explicit %> 
<% Dim get_IP %>
<% 
get_IP = Request.ServerVariables("REMOTE_ADDR")
%>
<%
If get_IP = "81.231.112.21" or "81.231.112.20" THEN %>
<% Response.Redirect("deny2.asp") %>
<% Else %>
<% Response.Write(get_IP) %>
<% End If %>

Det jag nu har lite problem med, är att jag vill att den ska söka igenom
en databas efter olika IP, och göra samma funktion.

hur?

If get_IP = rs("din IP-tabell") THEN %> kanske

Medlem sedan aug. 20051 200 inlägg
#5

Prövade

Prövade använda den koden,
antingen är jag så dum så jag inte använde den rätt,
eller så fungerar den inte.

<% Option Explicit %> 
<% 
Dim get_IP 
Dim rs
Dim conn
Dim banned
%>

<% 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ip.mdb")

rs = "SELECT * FROM banned ORDER BY ID, desc"
Set get_IP = Request.ServerVariables("REMOTE_ADDR")
If get_IP = rs("banned") THEN %>
<% Response.Redirect("deny2.asp")%>

<% Else %>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="middle"><strong><font size="3">TESTING!!!<br>
<% Response.Write(get_IP) %>      </font></strong></td>
  </tr>
</table>
<% End If %>

Detta är koden jag använder just nu.
Vill neka alla ip-adresser i den databasen.

Databasen heter ip.mdb , som ni ser,
och katalogen i databasen heter banned.
Fältet den ska söka i , heter IP.

Medlem sedan maj 20031 472 inlägg
#6

Jag tycker inte du ska visa att de är blockade för då kan de bara skaffa ett nytt ip att jävlas ifrån (proxys m.m.) istället bör du skicka alla som är bannade till en error sida.
På den sidan skriver du bara att det är nått fel och att det kan försöka lite senare typ.

Medlem sedan aug. 200563 inlägg
#7

För er som skrivit exempelkoder här, jag har en fundering:
Varför använder ni så många %> och <%, tänk på att varje <% tar lite prestanda från servern, så försök att ha så lite <% och %> på den sida som möjligt.

Medlem sedan aug. 20051 200 inlägg
#8

Jag skriver alltid mina exempelkoder med <% %> runt varje kommando,
rent för att jag själv vill ha stenkoll på allt.
Sedan när det läggs ut, så modifierar jag om koden,
till minimalt antal <% %>.

Idéen noterad greyhound.
Dock vet jag fortfarande ingen lösning på problemet *ler*

Medlem sedan feb. 20011 198 inlägg
#9

Du har fel lite överallt.
Och SQL-frågan är inte så fin.

get_IP = Request.ServerVariables("REMOTE_ADDR")
set rs = conn.execute("SELECT IP FROM banned where IP='"& get_IP &"'")
If not rs.eof THEN %>
261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)