---
title: "Databasbaserad IP-spärr"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/178732-databasbaserad-ip-spärr"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "medialabs"
published: "2009-05-25T17:39:54.000Z"
updated: "2009-05-26T09:10:32.000Z"
replies: 1
views: 372
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/178732-databasbaserad-ip-spärr"
---

# Databasbaserad IP-spärr

## #1 — medialabs, 2009-05-25T17:39Z

Hej,

Har upptäckt att behovet att kunna spärra enskilda IP-adresser samt hela IP-ranges från att komma åt en webbaserad tjänst så skulle jag behöva lite hjälp med att klura ut den lite mer avancerade biten.

Just nu kan jag blockera enskilda IP-adresser, men jag skulle vilja ha möjlighet att blockera hela IP-nummerserier / subnät

Enklast är väl att direkt köra IP-numret i själva sql-frågan och göra en sökning i en databas med följande uppbyggnad.

ID - *vanligt id*
IPNumber - *ip-numer/serie som ska spärras*
Attempts - *hur många försök som gjorts från detta ip att besöka sidan*
LastAttempt - *när senaste försöket gjordes*

Hittade en bra början av Solbulle

```
RecSet.Open "SELECT * FROM blsyslog WHERE UserIP = '" & Request.Servervariables("REMOTE_ADDR") & "'", Connect
```

Hur utvecklar jag den vidare så att om besökaren faktiskt är blockerad sedan tidigare så uppdateras kolumnen Attempts och LastAttempt? Misstänker att jag får köra någon form av

```
if not RecSet.eof then
köra någon form av UPDATE tblsyslog SET ... ?
end if
```

Känner någon till ett redan existerande IP-blockeringsscript så att man slipper uppfinna hjulet en gång till?

Nuvarande kod som används

```
<%
Dim check, blocked
CheckUser = Request.ServerVariables("REMOTE_ADDR")
UserBlocked = "10.0.0.2, 10.0.0.3, 10.0.0.7"

If InStr(UserBlocked, UserCheck) Then
  response.write "Pga av tidigare intrångsförsök spårade till din IP-adress är denna tjänst ej tillgänglig längre för dig. Vid frågor, kontakta oss på zx@yw.nn"
End If
%>
```

Permalänk: https://www.webforum.nu/p/178732

## #2 — rille77, 2009-05-26T09:10Z

För att spärra enskild IP så är det här en enkel kod
Bytut till dn connection och ändra till rätt tabell/fältnamn i SQL

```
<%
strUserIp = Request.ServerVariables("REMOTE_ADDR")
strSQL = "SELECT COUNT(*) FROM blsyslog WHERE UserIP = '"& strUserIp &"';"
%>

blnBlocked = CBool(Connection.Execute(strSQL).Fields(0).Value)

If blnBlocked Then
  strSQL = "UPDATE blsyslog SET attempts = attempts + 1, LastAttempt = DATE() WHERE UserIP = '"& strUserIp &"';"
  Connection.Execute(strSQL)
  response.write "Pga av tidigare intrångsförsök spårade till din IP-adress är denna tjänst ej tillgänglig längre för dig. Vid frågor, kontakta oss på zx@yw.nn"
Response.End
End If
%>
End If
```

Permalänk: https://www.webforum.nu/p/2185811

---

Tråden på webben: https://www.webforum.nu/amne/asp/178732-databasbaserad-ip-spärr
