Du benötigst eine Kapuze oder Sturmhaube und nach Möglichkeit Handschuhe mit offenen Fingerkuppen. Des weiteren mindestens drei Bildschirme. Auf denen musst du dann je eine Konsole öffnen und die Schrift auf grün stellen. Ganz wichtig ist nebenbei auch, dass du den Raum abdunkelst, lediglich ein wenig indirektes Licht sollte an sein. Wenn du nun anfängst wild auf die Tastatur einzuprügeln, passiert alles andere ganz automatisch.
In dem von dir geposteten link steht aber die Antwort. Lies es dir doch mal die Antworten durch.
using $_SERVER['REMOTE_ADDR']
if that variable contains ipv4 address it means that client doesnt have ipv6, your server has missconfigured ipv6, your webserver doesnt have ipv6 support, your domain doesnt have aaaa record or if your site got both ipv4 and ipv6 address and everything is configured properly then most likely clients primary routing is via ipv4 (which is unusual but also might happen - might be forced by client or clients isp).
Ich sehe was deine Funktion tut, aber ich verstehe nicht ganz, was sie tun soll.
Du scheinst deinen Code ja von dieser Stack Overflow Antwort zu haben https://stackoverflow.com/questions/3338123/how-do-i-recursively-delete-a-directory-and-its-entire-contents-files-sub-dir
Vielleicht erklärst du noch mal genau, was deine Funktion erreichen soll.
Du solltest dich mal mit git auseinandersetzen. Git ist (zurecht!) das mit Abstand verbreitetste VCS (Version Control System), und dient genau diesem Zweck: Änderungen verschiedener Entwickler einfach und übersichtlich zusammenführen, verwalten und kontrollieren. Es bedarf am Anfang ein bisschen Arbeit sich in die Funktionsweise reinzulesen, aber es ist den Aufwand mehr als wert, wenn du planst mit mehreren Entwicklern an einem Projekt zu arbeiten. Git ist dafür fast immer die erste Wahl.
Mit Informatik fährst du generell ganz gut. Es ist wahr, dass Informatik weit mehr als nur Programmieren ist, und dass du nach 'nem Bachelor noch nicht der super Programmierer bist - aber das trifft bedingt eh auf jede Ausbildung zu.
Wenn du Informatik studiert hast wird es dir leicht fallen ein guter Programmierer zu werden, da du grundlegend gelernt hast, wie man bestimmte Arten von Problemen löst, die als Programmierer relevant sind. Es gibt außerdem einen relativ großen Unterschied zwischen theoretischer Informatik, angewandter Informatik, technischer Informatik und natürlich den ganzen interdisziplinären Wissenschaften wie etwa Bioinformatik. Generell ist angewandte Informatik ein guter Weg wenn du programmieren möchtest, da die Studiengänge meistens praktischer sind. Allerdings unterscheiden sich die Hochschulen in ihrer Ausrichtung des einzelnen Studiengangs sehr, so dass du dir einen Studiengang raus suchen solltest, der dir inhaltlich zusagt.
Sei dir aber bewusst, dass jeder Informatik-Studiengang Mathe-lastig ist. Theoretische Informatik in der Regel deutlich mehr, aber auch bei Angewandter kommst du um etwas Mathe nicht rum - wenn du Mathe also hasst, tu dir selbst einen Gefallen und geh einen anderen Weg.
Die andere Möglichkeit ist eine Ausbildung - Fachinformatiker für Anwendungsentwicklung. Hier brauchst du de jure kein Abitur, aber de facto ist es soweit ich weiß häufig Voraussetzung, um als Azubi genommen zu werden - jedenfalls ist das bei uns in der Firma so. In der Ausbildung lernst du sehr viel programmieren - wenn, und nur wenn du bei einer guten Firma bist. Was unsere Azubis in der Berufsschule lernen erscheint mir sehr bescheiden. Allerdings sind wir eine gute Firma, und wer bei uns 3 Jahre mitgearbeitet hat, kann danach anständig programmieren. Das ist aber nicht immer so. Sollte das dein Weg sein informiere dich vorher gut, mach erst ein Praktikum, guck dir die Leute an die dich ausbilden sollen.
Es bleibt noch zu erwähnen, dass dein Einstiegsgehalt nach einem abgeschlossenen Studium in der Regel besser ist als nach einer Ausbildung. Allerdings wird dein Abschluss im Laufe deiner Karriere immer unwichtiger, und deine Fähigkeiten/Erfahrung immer wichtiger - das ist jedenfalls meine Erfahrung.
Von einem 'game-irgendwas-Studium' würde ich sehr abraten. Ich mag da falsch liegen, habe da wenig Erfahrung mit, und kenne auch niemanden der so was studiert hat - aber hier sind meine Gründe dagegen:
- Die Gaming-Industrie ist überlaufen. Als Informatiker/Developer/Programmierer/Software Engineer/WieAuchImmerSieEsInDeinerFirmaNennen hast du es eigentlich recht leicht einen Job zu finden. Du kannst dir, wenn du dich nicht auf was sehr komisches spezialisiert hast, häufig die Jobs regelrecht aussuchen. Du verdienst recht gut - bis sehr gut - , und hast einen (meiner Meinung nach) angenehmen Job. Als Game-Dev hingegen musst du den Jobs nachlaufen. Alle wollen Game-Dev sein, du verdienst also in der Regel schlechter. (Klar, auch hier kannst du Karriere machen und am Ende sehr gut dastehen - aber als Berufseinsteiger ist es ungemein schwieriger als praktisch in jedem anderen Bereich). Dein Job ist in der Regel härter. Crunch-Time gibt es auch außerhalb der Spiele-Industrie - aber nirgendwo so krass. Massenhaft Überstunden, durcharbeitete Nächte, Stress, Schlafmangel? Kann man mögen, kann aber auf Dauer auch nerven. Vor allem, wenn man in einem entspannteren Job auch noch besser verdienen könnte. Wenn du Informatik studiert hast, stehen dir alle Möglichkeiten von Anfang an offen. Wenn du merkst: 'Nee, Game Dev nervt doch', kannst du relativ easy überall anders hin, und keiner fragt. Hast du aber 'game-irgendwas' studiert, ist das vermutlich ein bisschen schwerer. Andersrum kannst du aber mit einem 'normalen' Informatikstudium durchaus in die Spieleindustrie kommen.
- Viele dieser 'game-irgendwas'-Studiengänge sind privat. Erstens kosten die Geld, und zweitens sind, zumindest nach all meiner Erfahrung, Abschlüsse von pay-to-win Hochschulen nicht besonders hoch angesehen. Häufig verkaufen so Schulen denke ich einen Traum, den viele Leute haben - Game Dev werden. Und halten das Studium dann so leicht und inhaltsleer, dass es genug Leute schaffen - bezahlen ja dafür. Versteh mich nicht falsch, ich möchte mir nicht raus nehmen alle diese Studiengänge als schlecht abzustempeln - dafür weiß ich zu wenig drüber - aber wenn du einen Abschluss in theoretischer/angewandter Informatik hast, dann glaubt dir jeder Arbeitgeber, dass du in der Lage dazu bist, komplexe Probleme zu lösen. Und darum geht es am Ende des Tages.
Viel Erfolg auf deinem Weg, welcher auch immer es sein wird.
Es gibt einige Dinge die du tun kannst, allerdings sind viele davon relativ kompliziert, und ich nehme mal an, dass du nicht so versiert bist?
Was du allerdings machen kannst, was sehr sehr einfach ist:
Ziel ist es, eine URL zu erstellen, die sich die IP-Adressen von denen merkt, die sie besuchen - und dann deinen Stalker dazu zu bringen, genau diese URL zu besuchen.
Schritt 1:
Gehe auf https://grabify.link/
(oder eine beliebige andere Seite die auftaucht, wenn du "ip tracker link" googlest.
Schritt 2:
Gib irgendeine URL ein und klicke auf 'create URL'.
Schritt 3:
Kopiere dir die 'New URL'. Das ist die URL, die du deinem Stalker geben willst. Bringe deinen Stalker irgendwie dazu, diese 'New URL' aufzurufen. Hier ist deine Phantasie gefragt.
Schritt 4:
Kopiere dir den 'Access Link' (oder bookmark dir einfach die Seite auf der du gerade bist. Oder lass die Seite offen, oder was auch immer...). Diese Seite ist die Seite wo du sehen kannst, sobald dein Stalker die 'New URL' besucht hat.
Schritt 5:
Warte. Refresh die Seite. Warte. Refresh die Seite.
Solltest du erfolgreich gewesen sein, wird - sobald dein Stalker die 'New URL' aufgerufen hat - seine ip-adresse unten erscheinen.
Schritt 6:
Wenn du bis hier gekommen bist gehe auf eine Seite wie 'https://www.iptrackeronline.com'
Hier kannst du die IP deines Stalkers eingeben. IP-Adressen verraten dir in der Regel zwar nicht wer es ist, aber ungefähr von wo er/sie kommt. Die Genauigkeit kann hierbei abweichen. Generell hast du in einer großen Stadt eher die Chance, dass es genau ist. Wenn ich z.B. meine eigene ip eingebe, lande ich ungefähr 200 m neben meinem tatsächlichen Wohnort. Probier es einfach mal mit deiner eigenen aus.
Behalte im Kopf, dass es natürlich auch möglich ist, dass dein Stalker einen VPN oder ähnliches benutzt - sprich eine "falsche" ip-adresse benutzt. Dann hat dir das leider nichts geholfen.
Du könntest jetzt auch anfangen dich mit port-scanning vertraut zu machen - aber da wird das ganze dann auch schon ein wenig komplizierter ;)
Aber mit glück kannst du auch einfach über die ungefähre Ortsbestimmung deinen Verdacht entweder bestätigen oder ausschließen.
Alles Gute und viel Erfolg!
Es ist der Ternary Operator: http://www.cplusplus.com/articles/1AUq5Di1/
(condition) ? expression1 : expression2
guckt ob condition true ist, falls ja gilt expression 1, falls nicht expression 2.
In deinem Fall ist die condition:
( a - b )
true, da (-1 - 1) das gleiche wie (-2) ist. C/C++ behandelt jeden integer außer 0 wie 'true', und 0 wie 'false'. If(true) ist in C/C++ das selbe wie if(1), if(231) oder if(-31).
Daher sagt:
int c = ( a - b ) ? ++a : b ++;
// oder auch:
int c = (-2) ? -1+1 : 1+1;
,dass c = -1+1 ist, und a auch -1+1 ist. a ist 0, c ist 0 und b ist weiterhin 1, da die condition ja 'true' war.
Mach was, das dich so sehr interessiert, dass du genug motivation hast richtig gut in dem zu werden, was du tust. Du kannst 10 Devs fragen was momentan angesagt ist, und wirst 11 Meinungen bekommen - aber am Ende des Tages verdienen die gut, die richtig gut sind in dem was sie tun. Das ist zumindest meine Erfahrung.
Hi,
um dir vielleicht noch einen interessanten Denkansatz zu geben, der hier noch nicht erwähnt wurde - und etwas, dass du beim schreiben von Code durchaus im Kopf haben solltest: Das ist ein klassisches Szenario für eine 'Timing Attack'.
Wenn in Python (und den meisten anderen Sprachen) zwei strings verglichen werden, dann werden in wirklichkeit alle chars des strings nacheinander verglichen. Es wird genau genommen erst geguckt ob die strings gleich lang sind, wenn ja wird über jedes Zeichen des ersten strings iteriert und mit dem Zeichen, an gleicher stelle, des zweiten Strings verglichen. Sobald ein Zeichen abweicht wird der Vergleich beendet und als 'false' evaluiert.
userpw == passwort
ist in echt ziemlich genau das gleiche wie:
def str_equals(userpw, passwort):
if len(userpw) != len(passwort):
return False
for c1, c2 in zip(userpw, passwort):
if c1 != c2:
return False
return True
Gut, aber wie kann man das exploiten?
Ganz einfach: Je mehr Zeichen verglichen werden, desto länger dauert der Vergleich.
Wenn du (in deinem Fall wo das korrekte Passwort "geheim" ist) "aasd" eingegeben hättest, würde er sofort abbrechen, da die beiden strings noch nicht mal gleich lang sind. Hättest du "asddsa" eingegeben würde es schon ein bisschen länger dauern, da er zumindest das erste Zeichen vergleicht. "gehopp" würde noch länger dauern, da er erst beim vierten Zeichen abbricht.
Du kannst bruteforcen - aber anstatt blind zu raten, kannst du gucken wie lange das Programm braucht, um festzustellen, dass dein eingegebenes Passwort falsch war. Zu erst änderst du die Länge des geratenen Passworts, bis das Programm ein bisschen länger braucht um festzustellen, dass das Passwort falsch ist. Das verrät dir, dass die Länge nun stimmen muss. Dann änderst du so lange das erste Zeichen bis die Zeit noch ein bisschen länger wird, wenn das passiert weißt du, dass der erste Buchstabe richtig ist. Und so weiter.
Um zu verdeutlichen was das bedeutet: Dein Passwort "geheim" besteht aus 6 Zeichen. Würden wir ganz naiv jede mögliche Kombination ausprobieren, und es wären nur Buchstaben und Zahlen möglich, dann gäbe es 36 mögliche Zeichen. Das bedeutet 6³⁶ verschiedene Möglichkeiten (= 10314424798490535546171949056 verschiedene Passwörter). Dadurch, dass wir allerdings an jeder Stelle feststellen können ob das Zeichen richtig ist, sind es auf einmal keine 6³⁶ Möglichkeiten mehr, sondern lediglich 6*36 (= 216). Bedeutet, wir müssen im schlechtesten Fall 216 mal raten - statt 10314424798490535546171949056 mal.
Und genau das ist der Grund, warum es sichere Funktionen für stringvergleiche gibt, etwa https://docs.python.org/3/library/hmac.html#hmac.compare_digest
Viele Grüße