Avatar billede sublimegirl Nybegynder
11. september 2003 - 12:08 Der er 8 kommentarer og
1 løsning

Opret session ud fra IP adresse?

Jeg vil lave en simpel passwordbeskyttelse med en session på et website, hvor jeg i toppen skriver:

<%
If session("login") <> "okay" then
Response.Redirect "main.asp"
Else
%>

Hvordan kan jeg udelukke scriptet, hvis brugeren sidder på en bestemt IP-adresse, således at password beskyttelse ikke er nødvendig, hvis man går på hjemmefra?
Avatar billede sublimegirl Nybegynder
11. september 2003 - 12:09 #1
Noget i stil med:
If NOT IP-ADRESSE="4877.456.3657.456" then
If session("login") <> "okay" then
Response.Redirect "main.asp"
Else

... med ved ikke 100% med funktinen til IP-adressen.
Avatar billede sublimegirl Nybegynder
11. september 2003 - 12:17 #2
Nok nærmere:
If NOT IP-ADRESSE="4877.456.3657.456" OR session("login") <> "okay" then
Response.Redirect "main.asp"
Else

Men hvordan fisker jeg ip-adressen? Det ER fast ip-adresse, så det burde kunne lade sig gøre.
Avatar billede nielle Nybegynder
11. september 2003 - 12:24 #3
IP = Request.ServerVariables("LOCAL_ADDR")

- giver dig brugerens IP nummer.
Avatar billede sublimegirl Nybegynder
11. september 2003 - 12:29 #4
fant lige denne her:
Request.ServerVariables("REMOTE_HOST")
hvad gør den så i forhold til?
Avatar billede nielle Nybegynder
11. september 2003 - 12:29 #5
Og det skulle så have været:

IP = Request.ServerVariables("REMOTE_ADDR")

LOCAL_ADDR giver dig *serverens* IP nummer.
Avatar billede nielle Nybegynder
11. september 2003 - 12:31 #6
REMOTE_HOST givere serverens navn. Som regel er dette lig med dens IP nummer, men nogen gange har serveren rent faktisk et navn og det er så det du får igennem REMOTE_HOST.
Avatar billede nielle Nybegynder
11. september 2003 - 12:33 #7
Jeg er vist lidt træt her i denne ende. :^|

"Remote" referere til den bruger som laver requestet. Derfor er REMOTE_ADDR brugerens IP nummer og REMOTE_HOST er navnet på brugerens maskine (men som regel lig med brugerens IP nummer).

"Local" referere derimod til den server scriptet køre på.

Men svaret på dit problem er altså:

IP = Request.ServerVariables("REMOTE_ADDR")
Avatar billede sublimegirl Nybegynder
11. september 2003 - 12:36 #8
Hvad så når der sidder 5 brugere på et lokalnet, - er det så samme REMOTE_ADDR de har? eller skal jeg i det tilfælde hente et netværks-IP eller sådan noget?
Avatar billede nielle Nybegynder
11. september 2003 - 12:49 #9
På lokalnettet har de jo altså ikke samme IP nummer. Men hvis din script køre på en server som er placeret eksternt i forhold til lokalnettet, så vil de have samme IP nummer (hvis routeren/switchen/firewallen har NAT). Dermed kan du ikke skelne mellem dem via REMOTE_ADDR.

Desværre er der ingen løsning til det.
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