Avatar billede dtc Nybegynder
09. februar 2006 - 11:45 Der er 8 kommentarer og
1 løsning

Hvordan kan jeg fange en ip adresse og blokke for den?

Det skal bruges en i gæstebog jeg har som bliver spammet!

Koderne ser således ud:

< FORM >


<form method="POST" class="css" action="oprat_besked.asp">
                       
                      </tr>
                      <tr>
                        <td class="unnamed1">Headline</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <input type="text" name="overskrift" size="60">
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Message</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <textarea rows="5" name="Besked" cols="60"></textarea>
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Your name</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <input type="text" name="Navn" size="40">
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Your e-mail adress</td>
                      </tr>
                      <tr>
                        <td height="29">
                          <input type="text" name="link" size="40">
                        </td>
                        <td height="29">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left" class="unnamed1">Your homepage
                          adress</td>
                        <td height="2%">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left">
                          <input type="text" name="www" size="40">
                        </td>
                        <td height="2%">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left"> <br>
                          <input type="submit" value="Sign Guestbook" name="submit">
                          <input type="reset" value="Reset" name="reset">
                        </td>
                        <td height="2%">&nbsp;</td>
                      </tr></form>



<------ oprat_besked.asp ------>


<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb")

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From guestbook"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("overskrift") = Request.form("overskrift")
      rs("Besked") = Request.form("Besked")
      rs("Navn") = Request.form("Navn")
      rs("Dato") = Now
      rs("email") = Request.form("link")
      rs("www") = Request.form("www")
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing
response.redirect ("guestbook.asp")
%>
Avatar billede keysersoze Ekspert
09. februar 2006 - 11:53 #1
Vha Request.ServerVariables("REMOTE_ADDR")

Alt afhængig af hvad du vil gøre i koden så;

If Request.ServerVariables("REMOTE_ADDR") = "xxx.xxx.xxx.xxx" Then
  'det må du ikke
Else
  'det må du godt
End If
Avatar billede dtc Nybegynder
09. februar 2006 - 11:56 #2
Men hvordan for jeg logget ip adresse og hvor skal jeg sætte hvad ind?
form.asp -> her indtaster bruger deres besked mv....
opret_besked.asp indsætter data i DB
guestbook.asp - viser resultatet!

Det er MEGET længe siden jeg sidst har rodet med koder - så jeg er lidt på bar bund!
Avatar billede keysersoze Ekspert
09. februar 2006 - 12:30 #3
hvis du skal have ip ned i databasen er det bare at lave en ekstra kolonne og så skrive

rs("ip") = Request.ServerVariables("REMOTE_ADDR")

Hvis du så finder ip-nummeret på den bruger som ikke må skrive mere er det eksemplet fra første kommentar du skal sætte ind der hvor restriktionerne skal foregå.
Avatar billede dtc Nybegynder
09. februar 2006 - 12:52 #4
ok - nu har jeg fået den til at logge IP nummeret i DB....

Men hvor skal jeg indsætte restriktionerne.....er det i den der hedder opret_besked.asp????
Avatar billede keysersoze Ekspert
09. februar 2006 - 12:57 #5
det kommer helt an på hvilken slags restriktioner du vil have - hvis brugeren ikke må lægge beskeder i databasen overhovedet er det der men må brugeren godt lægge dem i db men bare så de ikke må vises er det i guestbook.asp
Avatar billede dtc Nybegynder
09. februar 2006 - 13:00 #6
ok.....der skal HELT spærres....dvs. så skal det være i opret_besked.asp...
men hvor henne i koden???
Avatar billede keysersoze Ekspert
09. februar 2006 - 13:10 #7
If Request.ServerVariables("REMOTE_ADDR") = "xxx.xxx.xxx.xxx" Then
  Response.Write "blablabla"
Else
  Const adOpenKeyset = 1
  Const adLockOptimistic = 3
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb")
  Set rs = Server.CreateObject("ADODB.RecordSet")
  strSQL = "Select * From guestbook"
  rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
  rs.AddNew
  rs("overskrift") = Request.form("overskrift")
  rs("Besked") = Request.form("Besked")
  rs("Navn") = Request.form("Navn")
  rs("Dato") = Now
  rs("email") = Request.form("link")
  rs("www") = Request.form("www")
  rs.Update
  rs.Close
  Set rs = Nothing
  Conn.Close
  set Conn = Nothing
  response.redirect ("guestbook.asp")
End If
Avatar billede dtc Nybegynder
09. februar 2006 - 13:29 #8
TAKKKKKEERRRR

det virker sgu!

Dan
Avatar billede sth Novice
11. februar 2006 - 18:48 #9
Request.ServerVariables("HTTP_X_FORWARDED_FOR") virker dog ikke hvis brugeren sider bag en proxy, for så får du ipadressen på proxyen. men det kan løses efter nedenstående princip:


Dim proxyIP, normalIP
proxyIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
normalIP = Request.ServerVariables("REMOTE_ADDR")

If proxyIP = doublequote Then
  'If the user is not behind a proxy
  ip_adresse = normalIP
Else
  'If the user is behind a proxy
  ip_adresse = proxyIP
End If
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