webForumDet fria alternativet

IP-koll

ASP

19 svar · 444 visningar · startad av soffan76

Medlem sedan maj 2001684 inlägg
Frågan#1

Kan nån hjälpa mig med ett problem?
Jag har ett Intranät vilket de som sitter inne på kontoret kan komma åt utan problem. Alltså alla med ett visst IP-nummer ska komma åt sajten. De som sitter ute på uppdrag däremot måste logga in. De med andra okända IP-nummer alltså. Servern med sajten finns på kontoret. Hur löser jag detta på snyggaste sätt? Tacksam för all hjälp jag kan få.

Medlem sedan apr. 20003 174 inlägg
#2

Kolla ip-numret, är det ett känt ipnummer släpp in dem utan att först behöva logga in. Är det ett okänt nummer - låt dem logga in.

ex.

[RED]<%

intIP = Request.ServerVariables("REMOTE_HOST")

If intIP = "KÄNT IP-NUMMER" Then
	'Slipper logga in

Else
	'Måste logga in

End If

%>[/RED]
Medlem sedan okt. 20005 273 inlägg
#3

Jag skulle tro att de flesta datorer inne på intranätet har de samma 7 första siffror typ

[red]
192.168
[/red]

eller nått sånt, så då borde du kunna kolla på varje sida om det ip nummret stämmer överens eller om man har loggat in vilket jag gissar att du satt en session om man lyckats med

[red]
If NOT Cbool(Session("permission")) = true OR Left(request.servervariables("REMOTE_ADDR"), 7) ="192.168") Then Response.Redirect "loggin.asp"
[/red]

Detta är ett sätt iaf

mvh icaaq

Medlem sedan maj 2001684 inlägg
#4

Då blir följdproblemet detta:
IP-nummret kan vara:
känd siffra.känd siffra.känd siffra.1-255
Alltså, de första tre känner jag till med den fjärde kan vara allt mellan 1 och 255. Ska jag då skriva 255 rader?
Eller kan man skriva:
If intIP = "siffra.siffra.siffra.*" Then

Medlem sedan maj 2001684 inlägg
#5

Ok, Icaaq, du hann svara innan jag skrev....

Medlem sedan maj 2001684 inlägg
#6

Kan man använda stjärna eller hur ska jag bära mig åt?
Det blir ju en massa rader annars...

Medlem sedan okt. 20005 273 inlägg
#7

Använder intranätet nått sorts winNT inloggning när man loggar in på intranätet? isåfall så skulle du kolla om den inloggningen är rätt och ge dem tillåtelse att besöka sidorna.

mvh icaaq

Medlem sedan maj 2001684 inlägg
#8

Ok, lättare om jag skickar med kod antar jag:
labbar för närvarande med detta:

<%
ip = Request.Servervariables("REMOTE_ADDR")

IF ip = "192.168.20.*" then
Response.Redirect "welcome.asp"
Else
Response.Redirect "logg_in.asp"
End if
%>

Stjärnan ska alltså stå för en siffra mellan 1-255 men det funkar inte.

Medlem sedan maj 2001684 inlägg
#9

Icaaq, jag förstår inte riktigt...som det varit hittills har jag bara haft en inloggning i ASP...svaret är nog nej allstå...

Medlem sedan maj 2001684 inlägg
#10

Ska jag skriva en array kanske??
Hur man nu gör det....

Medlem sedan apr. 20003 174 inlägg
#11

Ok, detta borde ju fungera då.

Här kollar vi så de första 11 är korrekt.

[RED]<%

ip = Request.Servervariables("REMOTE_ADDR")

If Left(ip, 11) = "192.168.20." Then
	Response.Redirect "welcome.asp"

Else
	Response.Redirect "logg_in.asp"

End if

%>[/RED]
Medlem sedan okt. 20005 273 inlägg
#12

Nu är inte jag nån expert på Intranät eller sånt ;) men jag har för mig att 192.168 är intranät ipnummer :OO .

Så om du kollar på det jag skrev förut så är det precis så det funkar. dvs om dem första 7 siffrorna i besökarens IP är 192.168 så är det ganska säkert att han/hon sitter på erat intranät.

Detta är dock inte nått jag är expert på som jag sa, så om nån vet att jag har fel så SKRIK till :)

Hur var det igentligen inloggningen på deras intranät är det nån sorts winNT/winXP inloggning?

mvh icaaq

Medlem sedan maj 200010 687 inlägg
#13

Det är väl ett extranät soffan76 snackar om..?

Medlem sedan maj 2001684 inlägg
#14

Palle, jag får inte din lösning att funka. Hamnar på logg_in-sidan trots att jag har rätt IP....

<%
ip = Request.Servervariables("REMOTE_ADDR")
If Left(ip, 11) = "192.168.101." Then
	Response.Redirect "welcome.html"
Else
	Response.Redirect "logg_in.html"
End if
%>

Icaaq; jag får expected then på din kod. Varför?? Suck...

Medlem sedan maj 2001684 inlägg
#15

Erik Juhlin; jo, det kan man väl kalla det eftersom det är några konsulter utanför som ska få åtkomst...

Medlem sedan maj 2001684 inlägg
#16

Nu kom chefen in och sade att det blir en annan lösning. Jag tackar för era ansträngningar i alla fall.

Medlem sedan feb. 200112 078 inlägg
#17

icaaq skrev:

Nu är inte jag nån expert på Intranät eller sånt ;) men jag har för mig att 192.168 är intranät ipnummer :OO .

Så om du kollar på det jag skrev förut så är det precis så det funkar. dvs om dem första 7 siffrorna i besökarens IP är 192.168 så är det ganska säkert att han/hon sitter på erat intranät.

Detta är dock inte nått jag är expert på som jag sa, så om nån vet att jag har fel så SKRIK till :)

Hur var det igentligen inloggningen på deras intranät är det npn sorts winNT/winXP inloggning?

mvh icaaq

192.168.xxx.xxx är väl det vanligaste som brukar användas i 'intranät' eller interna windowsnät. Ofta tilldelar en dhcp-server ett sådant IP-nummer.

Problemet är väl då att om någon kommer utifrån brandväggen så kommer ju denna inte få ett sådant ip-nummer; utan troligtvis ett skarpt ip-nummer, antingen från besökarens egen dator eller dennes brandvägg om han/hon har en sådan.

Medlem sedan okt. 20005 273 inlägg
#18

Min kod är identisk med Palles nästan

[red]If NOT Cbool(Session("permission")) = true OR Left(Cstr(request.servervariables("REMOTE_ADDR")), 11) ="192.168.101." Then
Response.Redirect "loggin.asp"
End If
[/red]

Gjorde om min kod lite

mvh icaaq

Medlem sedan maj 2001684 inlägg
#19

Fortsatte labba lite...
jag fick din kod att funka nu, Icaaq.
Tack för din hjälp!

Medlem sedan okt. 20005 273 inlägg
#20

Kul att du fick det att funka :)

mvh icaaq

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)