C Code Abfrage von Server

MCStreetguy

Stammuser
Nochmals hallo Community...

Ich habe ein Problem... Ich möchte das ein Chat-Programm von mir nur bestimmten Nutzern zur Verfügung steht...

Ich hatte mir überlegt das ich das über eine CodeAbfrage von meinem Webserver mache... (Ich habe einen Free-Webspace bei Funpic.de gehostet)
Dort soll ein PHP-Skript einen Code generieren, der von meinem Programm abgefragt wird... Das Skript ist kein Problem, aber wie kann ich einen Code vom Server im Programm vergleichen?

Habt ihr da eine Idee, oder eine Alternative?

Danke schonmal, MCStreetguy
 

bitmuncher

Senior-Nerd
Du kannst mit der libcurl ziemlich simpel HTTP-Requests machen.

Ich würde auf dem Webspace einen kleinen Webservice aufsetzen, der einerseits in der Lage ist diese Codes zu generieren und in einer DB abzulegen und der andererseits deinem Server nach einer entsprechenden Authentifizierung die Liste der vorhandenen Codes auswirft. Dann können sowohl Clients zur Online-Registrierung als auch dein Server zur Key-Verifizierung darauf zugreifen.
 

MCStreetguy

Stammuser
Hmm das klingt schon ziemlich kompliziert...

Wie sieht es damit aus das der Server einen Code generiert und diesen ausgibt...
Im Programm muss dann der Code eingegeben werden und das Programm überprüft dann den Code von Server abfragt um ihn zu vergleichen...

Ist das möglich?
 

bitmuncher

Senior-Nerd
Warum sollte das nicht möglich sein? Werden ja lediglich ein paar Daten über einen Socket gesendet. Wird nur dann kompliziert, wenn du das gegen MITM schützen wollen würdest, da dann eine Verschlüsselung notwendig wird, was wiederum mit HTTPS und libcurl wesentlich vereinfacht wird.
 

bitmuncher

Senior-Nerd
Klar, oder noch etwas sicherer, damit nicht der Client den Vergleich macht (was ja relativ leicht umgehbar wäre): Der Client meldet sich mit einer Unique-ID an. Der Server schaut in einer ihm bekannten Liste nach ob ihm diese ID bekannt ist. Damit kann dein Server dann auch die Clients/User unterscheiden.
 

MCStreetguy

Stammuser
Ok aber jetzt kommt das Problem...
Funpic ist ein Webspace der nach dem Prinzip "NameDeinerSeite.funpic.de" arbeitet...
Ob ich jetzt die IP für "test.funpic.de" oder für irgendwas anderes auflöse, kommt immer dasselbe raus :/ (siehe Anhang)
 

bitmuncher

Senior-Nerd
Wenn du Daten von einem Webserver abfragst, musst du dich eh immer an's HTTP(S)-Protokoll halten. Und damit wären wir wieder bei libcurl. ;)

Also um's mal aufzudröseln... Dein Server soll eine Webapp sein, an der sich die Clients anmelden sollen oder schreibst du auch den Server in C?

Szenario 1: Client und Server sind in C geschrieben. Damit überhaupt irgendwer eine Verbindung aufbauen kann, muss der Server eine feste IP haben, zu der sich der Client auf den Port, an dem dein Server lauscht ( listen() ) verbindet. In dem Fall vergiss deinen Webspace. Gib deinem Server eine Liste von validen Client-IDs, die dir die Clients binnen 2-3 Sekunden nach dem Verbindungsaufbau senden müssen, damit die Verbindung nicht sang- und klanglos wieder geschlossen wird.

Szenario 2: Dein Server ist eine Webapp. Die Clients sind in C geschrieben. Lösung: Nutze libcurl und unterhalte dich über ganz normale HTTP-Requests mit deinem Server. Der Client sendet also seine ID als POST-Requests, deine Webapp vergleicht sie und gibt ihm einen Auth-Cookie zurück, wenn alles ok ist.
 
Oben