WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Att kunna se besökarens IP (https://www.wn.se/forum/showthread.php?t=10208)

Davve 2005-10-07 15:15

Jag vill lägga en liten kodsnutt på alla undersidor på en webbsida som läser av de som är online just nu, sen på admin delen vill jag kunna se IP adressen på de som är nu online, gärna mer information om så går än bara IP, kanske landsdel, ISP osv, så mycket som möjlig. Mina sidor är i ASP. Går detta på något smidigt sätt att fixa?

/David

Springbeat 2005-10-07 15:27

Kod:

<%Response.Write(Request.ServerVariables("remote_addr"))%>

Ett tips, Google om olika asp kurser

Davve 2005-10-07 15:43

Tack, men att visa variabler vet jag hur jag gör. Det jag inte kommer på är hur jag ska göra för att kunna visa alla som är online med den informationen i admin, utan att den info syns på webbplatsen. Om jag inkluderar en fil i alla undersidor idag som heter säg "minstatistik.asp" och skriver ut variabeln där så kommer den ju visas för alla på alla undersoidor.

Nåt förslag, det är säkert jätte enkelt, men jag bara inte kommer på det :)

Netikett 2005-10-07 16:02

Ska bara du se det kanske nåt i stil med detta funka bra.
Kod:

if session("Login") = "admin" Then
'visa minstatistik
End if

En riktlinje bara..

grazzy 2005-10-07 16:25

Jag förstår inte riktigt vad du är ute efter Davve, du frågar efter ett större programmeringsjobb som är helt anpassat för din sida.

Antingen kan du ha tur och hitta något färdigt som någon har gjort, eller så får du göra det själv.

Om du vill ha det "gjort", så varför inte lägga upp ett jobb i tjänster-forumet istället?

mrnoname 2005-10-07 16:29

Var längesen jag höll på med asp men här kommer ett försök:

I global.asa lägger du till:

sub onSessionStart
' lägg till ip i databasen över de som är online
end sub

sub onSessionEnd
' ta bort användarens ip ur databasen
end sub


global.asa:
onSessionStart - Körs varje gång en anv kommer till sidan
onSessionEnd - Körs när användaren navigerar ifrån eller stänger ned webbläsaren.

Observera att dessa inte är 100% tillförlitliga... vad jag hört

Davve 2005-10-07 16:34

<%Response.Write(Request.ServerVariables("remote_a ddr"))%>

samma sak med denna variabeln, den visar ju bara mitt IP för mig, den visar inte alla IP som är online, krångligt detta :)

Netikett 2005-10-07 16:37

Spara allas ip och datum när de laddade sidan.
Sen listar du alla datum som varit aktiva de senaste 15 minuterna eller liknande.
Så slipper du global.asa

Davve 2005-10-07 16:44

Citat:

Originally posted by mrnoname@Oct 7 2005, 16:29
Var längesen jag höll på med asp men här kommer ett försök:
I global.asa lägger du till:
sub onSessionStart
lägg till ip i databasen över de som är online
end sub
sub onSessionEnd
ta bort användarens ip ur databasen
end sub

global.asa:
onSessionStart - Körs varje gång en anv kommer till sidan
onSessionEnd - Körs när användaren navigerar ifrån eller stänger ned webbläsaren.
Observera att dessa inte är 100% tillförlitliga... vad jag hört

Det skule jag kunna testa, men hus ska jag anropa det sen? Alltså för att visa info?

Kristofer 2005-10-07 16:49

Davve kolla på det mrnoname skriver.

Du måste in i filen (eller skapa den om den inte finns) Global.asa och där lägga till kodsnuttar i OnSessionStart och OnSessionEnd då du sparar respektive tar bort informationen från varje användare. Det kan göras på olika sätt, databas eller Application och jag hade nog föredragit Application i det här fallet.

För att räkna antalet besökare online just nu kan det se ut så här i Global.asa (anpassa efter dina behov):

Sub Session_OnStart
' Change Session Timeout to 20 minutes (if you need to)
Session.Timeout = 20
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
' Decrease the active visitors count when the session ends.
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub

På vilken undersida som helst kan du då för att visa antalet besökare bara skriva <% Response.Write Application("ActiveUsers") %>

(förutsätter att en session startas när en ny besökare kommer till webplatsen.)

Davve 2005-10-07 16:55

Ja, det är just det som ligger i min Global.asa just nu :) Men jag vill kunna visa IP genom det också, alla online IP

mrnoname 2005-10-07 17:02

Citat:

Originally posted by Davve@Oct 7 2005, 16:55
Ja, det är just det som ligger i min Global.asa just nu Men jag vill kunna visa IP genom det också, alla online IP

Kolla det jag skrev innan... så får du en iplista

Davve 2005-10-07 17:09

Citat:

Ursprungligen postat av mrnoname
Citat:

Ursprungligen postat av Davve
Ja, det är just det som ligger i min Global.asa just nu Men jag vill kunna visa IP genom det också, alla online IP

Kolla det jag skrev innan... så får du en iplista


Ja, det är det jag tänker på, skulle du kunna utveckla lite hur jag ska använda den koden?

wiggin 2005-10-07 17:41

Jag har ett sådant script färdigt i asp, men jag håller med grazzy. PMa om du är intresserad.

mrnoname 2005-10-07 17:42

databasdesign, tabellen online
o_ip varchar(15)
o_tid datetime


i global.asa
sub onSessionStart
' lägg till användarens ip, tid i databasen
end sub

sub onSessionEnd
' ta bort posten som innehåller användarens ip ur databasen
end sub



När du vill få ut antalet online

SQL-sats:
SELECT COUNT(o_ip) as antalonline FROM online;

Skriv ut antalonline

När du vill få ut ipadresserna

SQL-sats:
SELECT o_ip FROM online;

Loopa ut alla o_ip


När du vill få ut ipadresserna + hur länge de varit online
SQL-sats:
SELECT * FROM online;

Loopa ut alla o_ip och räkna ut vistelsetiden genom att jämföra o_tid med NOW


Alla tider är GMT +2. Klockan är nu 03:55.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson