enclave
Goto Top

IP des Rechners ermitteln und mitsenden

Moin zusammen,


Für eine Schule, speziell dem Informatikraum, habe ich ein Verwaltungssytem geschrieben wo die Lehrer Dateien hochladen können die sich Schüler dann runterladen können. Dies wurde mit PHP und MySQL über das Programm "XAMPP"(apachefriends.org) gelöst. Dieses Programm ist überall im Netzwerk erreichbar. Jetzt fragte mich der Lehrer ob es möglich sei eine Funktion einzubauen das es ermöglicht das Schüler Dateien hochladen können diese aber erst nach einer Freigabe durch den Lehrer erreichbar sind. Kein Problem hab ich gesagt. Hat auch alles so funktioniert wie es soll. Jetzt würde er gerne auch die Klassenarbeiten damit "einsammeln". Eigentlich kein Problem wenn es keine Schummler gäbe. Denn ein guter Schüler könnte seine Arbeit leicht verändert auch für andere schlechtere Schüler hochladen. Er bräuchte lediglich die Accountdaten des Schülers. Diese würde ja jeder preisgeben da sie bis auf die "Macht" Dateien hochzuladen keinen Zweck erfüllen. Das Script arbeitet fast wie ein Kontaktformular. Nur das die eingegebenen Daten nicht als E-Mail verschickt werden sondern in eine Datenbank geschrieben werden. Die Dateien werden dann mit dem Befehl copy... in einen Ordner auf dem lokalen, virtuellen Webserver (Lehrerrechner) gespeichert. Die Datenbank enthält lediglich den Pfad zur Datei und ein paar beschreibungen. Jetzt soll noch die IP des Rechners in der Datenbank gespeichert werden, so dass der Lehrer sehen kann ob ein Rechner zweimal Dateien hochgeladen hat.

Also kurz und knapp:

Wie kann ich die IP des Rechners auslesen und als Schlüssel (z.B. $ip) festlegen?

Wichtig dabei!!!

Es muss ein Befehl in PHP und kein CGI oder PERL sein.


Ist es möglich?


Vielen Dank schoneinmal im Vorraus


Enclave

Content-ID: 27619

Url: https://administrator.de/contentid/27619

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

priez
priez 07.03.2006, aktualisiert am 30.03.2023 um 02:07:25 Uhr
Goto Top
$ip = getenv('REMOTE_ADDR');  

@ http://de2.php.net/getenv
LordMDG
LordMDG 07.03.2006 um 17:20:39 Uhr
Goto Top
Moin!

Dir ist aber schon klar, das nach dem trennen und neu verbinden zum Internet immer eine neue IP zugewiesen wird und man so das System austriksen kann!?!

Ich würd zusätzlich dir Uhrzeit und den Browsertyp speichern. Und ein cookie auf den Rechenr setzten, um ihn zu identifizieren!
Dani
Dani 07.03.2006, aktualisiert am 30.03.2023 um 02:07:38 Uhr
Goto Top
Hi,
also die wirklich vielleicht einzigeste Möglichkeit sind Cookie (wie oben schon steht). Ich würde die IP und Rechnernamen auch mitloggn. Denn der Rechnername ist zu 99% immer beim Cleint gleich.

Befehle:
$ip=$_SERVER['REMOTE_ADDR'];  
$pcname=$_EN['COMPUTERNAME'];  


Gruß
Dani
heyko
heyko 07.03.2006 um 17:31:06 Uhr
Goto Top
in einem schulnetz? ich meine zumindestens für die zeit während die arbeiten eingesammelt werden wird die ip sich ja nicht ändern selbst bei dhcp gäbe es ja lease-zeiten ... und wenn man wirklich be###e will gibts ja noch ganz andere möglichkeiten

aja und sonst du kannst die ip auch direkt aus der variable $_SERVER['REMOTE_ADDR'] holen...

-- edit --
oh sorry war wohl etwas zu langsam face-smile
13100
13100 08.03.2006 um 09:01:51 Uhr
Goto Top
was hindert schüler a daran schüler b seine arbeit zu schicken,
so dass anschliessend schüler b die arbeit von schüler a mit seiner
eigenen ip als seine eigene arbeit hochläd?
Enclave
Enclave 08.03.2006 um 15:11:09 Uhr
Goto Top
Hmmm...

eigentlich ist es egal was gesendet wird. ich brauch lediglich eine Information mit der der Lehrer eindeutig sehen kann von welchem Pc die Datei hochgeladen wurde. Also das mit dem Rechnernamen ist ne gute Idee.

Zum Thema es gebe viele Varianten zu beschei**en...

Alle anderen Möglichkeiten zu Schummeln wären mit ein wenig mehr aufwand verbunden und diese fallen dem Lehrer wohl auf. Der geht ja nicht Kaffee trinken oder so. Nur wenn jemand ne Datei mit diesem Programm hochlädt weiss der Lehrer ja nicht mit welchem user dieser sich gerade angemeldet hat. Und da die PC Namen von pc01 bis pc25 durchnummeriert sind ist das wohl ne gute Iddee. Da die Schüler keine Adminrechte auf den Systemen haben können Sie die Rechnernamen nicht ändern.


@13100:

Wie sollen sich die Schüler denn austauschen? Ich geh mal davon aus das der Lehrer nicht zuläst das dort Disketten bzw. USB-Stifte getauscht werden. face-smile


Ich werd mal ein paar testdurchläufe machen und dann noch mal posten.


Aber danke schonmal


Enclave
13100
13100 08.03.2006 um 15:27:37 Uhr
Goto Top
kommt natürlich immer auf die umgebung an, die möglichkeiten sind aber
sicher vielfältig und selbst bei nem kleinen usbstick, würd ich es eher führ
unwahrscheinlich halten. wobei ich aber eher an so dinge wie msg, net
send,... gedacht habe. jaja, kann man alles abdrehen, is klar, aber alle
denk- und undenkbaren möglichkeiten, von denen es bekanntlich viele
gibt, glaub isch nich.
Enclave
Enclave 09.03.2006 um 13:32:49 Uhr
Goto Top
Ich glaub nicht. Früher wurde es mit einem Server der nicht mehr funktioniert gelöst. Jeder hatte einen Ordner Z: auf dem Server und dort waren unter anderem ein Export und ein Inport Ordner. Die Schüler haben die Dateien in den Export Ordner gelegt und diese wurden dann vom Lehrer eingesammelt. Somit gibt es keine Möglichkeit die es früher nicht gegeben hätte. Nur noch sicherer ist es vielmehr, da man sich ja mit dem Benutzer an Windows anmelden konnte also mit dem anderen. Jetzt geht dies nicht mehr. Der Messengerdienst ist, also net send, ist deaktiviert und kann nicht genutzt werden. Und ein Programm zu Installieren wie ICQ können sie erstens, wegen mangelnder Adminrechte, nicht installiert werden und 2 wegen ausgeschaltetem Internet nicht benutzt werden.

Also das ist nicht so das Problem.

Aber mal was anderes.

Ich habe einen Schlüssel $name1 und noch einen zweiten $name2

Der wert des ersten ist zum Beispiel

Harald

und der 2

Mustermann

wie kann ich jetzt die beiden schlüssel so kürzen das ich, wenn ich dann beide in einen Schlüssel setze, HaraMust herauskommt?

Also kürzen um 4 stellen und dann in einen anderen Schlüssel exportieren. Ich hatte das mal mit nem Array versucht aber konnte diesen nicht benutzen das dort stand

Must, [1] erma, [2] nn

also mit den Zahlen. Kann mir jemand nen Beispiel mal posten?
Das wäre sehr nett.


Enclave
Dani
Dani 09.03.2006, aktualisiert am 30.03.2023 um 02:07:58 Uhr
Goto Top
Hi,
probier's mal mit dem Code hier:
<?php

$nname="Mustermann";  
$vname="Harald";  

$t1=substr($vname,0,4);
$t2=substr($nname,0,4);

$kuerzel="$1$2";  

echo $kuerzel;  
?>


Gruß
Dani
Enclave
Enclave 10.03.2006, aktualisiert am 30.03.2023 um 02:08:19 Uhr
Goto Top
Danke,

hat funktioniert. Und da hab ich noch ein Problem(dürfte das letztes sein).

Wenn ich deswegen einen neuen Thread aufmachen soll sagt bescheid.

Also. Ich kopiere mit dem Befehl copy() Dateien in einen Ordner von meinem Server. Wenn jetzt jemand auf den Link zu der Datei klickt kommt ja die Downloadaufforderung (oder auch nicht. doch noch ein Problem siehe Link definieren als ob man Ziel speichern unter aus dem Kontextmenü gewählt hätte. Ist das dann zum Beispiel eine Worddatei und man klickt auf Öffnen wird die Datei im Browser angezeigt. Da die chmod rechte für den Ordner bei 777 liegen kann derjenige welche der die Datei öffnet sie verändern und wieder speichern. Auf dem Server!!!

Also wie kann ich die Datei schreibgeschützt in den Ordner kopieren? oder Wie kann ich verhindern das diese Dateien verändert werden?

Ich hoffe das ich keinem jetzt Kopfschmerzen bereite face-smile


Enclave
TobiasNYC
TobiasNYC 11.03.2006 um 00:03:22 Uhr
Goto Top
Wenn ich das richtig verstanden habe, brauchst Du nur die Attribute der besagten Datei(CHMOD) auf 555 (lesen, ausführen) oder 444 (nur lesen) ändern, oder?
Enclave
Enclave 11.03.2006 um 19:01:52 Uhr
Goto Top
aber wie kann ich eine Datei mit einem bestimmten chmod mit dem befehl copy übertragen?


Enclave