NAbend liebe leut,
Ok mag sein dass es themen darüber gibt hier im selfhtml,aber nach zwei stunden
suchen post ich mal mein problem so:
Ich hab ein cgi dass ip und HTTP_USER_AGENT im stat.log speichert zwecks überwachung
im memberbereich.
ich hab das cgi so abgeändert dass es nicht nur ip zählt sonder auch der user_agent dies
desshalb weil das cgi oft fehlalarm ausgibt,wenn z.B. ein Aol user
mit einer statischen IP einloggt nun gut die log datei sieht z.B. wenn normal so aus:
Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; QXW0334w)*62.3.239.7*0*Aug 15*steve
wenn er jetzt mit dem selben usernamen einloggt aber einen anderen browser benutzt dann sieht das so aus:
Mozilla/4.0 (compatible; M Mozilla/4.78 [de] (Win98; U)*62.3.239.7*0*Aug 15*steve
ist aber nicht korrekt
in dem fall müsste aber der agent so aussehen:
Mozilla/4.78 [de] (Win98; U)*62.3.239.7*0*Aug 15*steve
warum wird denn Mozilla/4.0 (compatible; M noch angehängt oder bleibt es stehen
vom letzten user ?
Im cgi ist das so geschrieben:
$loginlog = 'log/stat';
$abusecount = 2;
$maxusers = 150;
$doflocks = 1;
$date = date
;
$date_today = join( " ", (split(" ",$date)) [1,2] );
$username = $ENV{'REMOTE_USER'};
$ip_now = $ENV{'REMOTE_ADDR'};
$uag_now = $ENV{'HTTP_USER_AGENT'};
print "Content-type: text/html\n\n";
$maxsize=$maxusers*8*4; #uname+pass average length is 8 chars
unlink($loginlog) if ((stat($loginlog))[7] > $maxsize);
exit if (!$username);
if (dbmopen(logins,$loginlog,0666))
{
flock(logins,2) if ($doflocks);
($uag_last,$ip_last,$count_last,$date_last) = split(/\*/,$logins{$username});
$logins{$username} = " $uag_now*$ip_now*$count_last*$date_today*";
dbmclose(logins);
flock(logins,8) if ($doflocks);
also ich hab jetzt nur das reingeschrieben was mit der logdatei zusammenhängt nicht das ganze cgi.
Wäre froh wenn mir damit jemand helfen könnte.
Schönen gruss
FreundVonCgis