Features:
- Erstellen von dynamischen Threads
- Automatisierte Abfragen für Server
- "Relaise-Schaltung für das Internet"
- Ausgabe des Inhalts für den Thread
- Automatisierte Abfragen für Server
- "Relaise-Schaltung für das Internet"
- Ausgabe des Inhalts für den Thread
Warum habe Ich dieses Tool geschrieben / die Idee dahinter:
Da bei allen privaten Servern des Spiels "Fiesta" (die eine Highscore-Liste auf der Website haben) wird um die Highscoreliste (die zB das Level anzeigt) ein PHP-Script verwendet, welches eine direkte Verbindung zur SQL-Datenbank des Spielservers aufbaut. Da dies eine gigantische Sicherheitslücke ist (da Benutzername, Passwort und IP der Datenbank angegeben werden müssen!) hab ich mir eine Lösung für dieses Problem ausgedacht.
Screens:
Mögliche Fehler:
Virenscanner blockt das Programm:
- zB Avira Antivir blockt das Script... da es Opensource ist, könnt ihr dem Programm vertrauen
Dateiupload fehlerhaft:
- Server URL ist falsch
- Benutzername oder Passwort (für FTP zugang) ist falsch
Thread fehlerhaft:
- HTML-Code ist im Thread deaktiviert

- zB Avira Antivir blockt das Script... da es Opensource ist, könnt ihr dem Programm vertrauen
Dateiupload fehlerhaft:
- Server URL ist falsch
- Benutzername oder Passwort (für FTP zugang) ist falsch
Thread fehlerhaft:
- HTML-Code ist im Thread deaktiviert

Konzept:
- Die Datei auf dem Server (= mein Programm) schreibt Strings/Inhalte in Textdateine, die auf einen externen Server gespeichert sind (bzw erstellt die Dateien vorher)
- Der Benutzer ruft eine Website auf (im Beispiel ein Thread, kann aber auch eine ganz normale Website sein). Die Website/Thread fungiert in diesem Fall als Client
-Der Client liest die Daten, die in der Textdatei stehen aus und zeigt sie dem Benutzer an
Wenn man nun das Server-Programm modifiziert/anpasst, kann man zB eine Funktion implementieren, die automatisch Daten (zb aus einer SQL-Datenbank) abruft und diese in die externe Textdatei schreibt. So kann der Benutzer ohne direkten Zugriff auf den Server (bzw auf die SQL-Datenbank) Daten anzeigen. Somit hat man eine Art "Relaise-Schaltung für das Internet"
Durch dieses Prinzip lassen sich zB Highscorelisten (zB von einem Spiel) ausgeben, die automatisch aktuallisiert werden ohne eine direkte Verbindung zum Server aufbauen zu müssen (und somit muss im PHP-Script auf der Website weder IP vom Spielserver noch Benutzername & Passwort der Datenbank angegeben werden). Um die Bedienung zu vereinfachen zeigt das Programm einen generierten Quelltext für die Website an...
- Der Benutzer ruft eine Website auf (im Beispiel ein Thread, kann aber auch eine ganz normale Website sein). Die Website/Thread fungiert in diesem Fall als Client
-Der Client liest die Daten, die in der Textdatei stehen aus und zeigt sie dem Benutzer an
Wenn man nun das Server-Programm modifiziert/anpasst, kann man zB eine Funktion implementieren, die automatisch Daten (zb aus einer SQL-Datenbank) abruft und diese in die externe Textdatei schreibt. So kann der Benutzer ohne direkten Zugriff auf den Server (bzw auf die SQL-Datenbank) Daten anzeigen. Somit hat man eine Art "Relaise-Schaltung für das Internet"
Durch dieses Prinzip lassen sich zB Highscorelisten (zB von einem Spiel) ausgeben, die automatisch aktuallisiert werden ohne eine direkte Verbindung zum Server aufbauen zu müssen (und somit muss im PHP-Script auf der Website weder IP vom Spielserver noch Benutzername & Passwort der Datenbank angegeben werden). Um die Bedienung zu vereinfachen zeigt das Programm einen generierten Quelltext für die Website an...
Erweiterte Funktionen:
Wie schon gesagt, kann man das Skript auch automatisieren... So gehts:
Vorraussetzungen:
Optisches/GUI:
Programmcode:
Vorraussetzungen:
- Visual Basic 2010
- Brain.exe
- Brain.exe
Optisches/GUI:
4x Textbox (Namen: Server, Datei, ID, PW)
1x Button (Name: Start)
1x Button (Name: Start)
Programmcode:
Der Datenupload:
Der Vorgang des hochladens (im Beispiel die Funktion "uploaden(daten as string)" der Information(die Abgerufen werden muss!) muss in einer Endlosschleife wiederholt werden, die sich alle paar Minuten/Stunden wiederholt:
jedoch müssen davor die Daten ausgelesen werden. Dies geht über diesen SQL-Befehl (liest die top 10 aus):
um die Daten abzurufen, müsste man eine SQL-Reader einbauen:
Wenn man dann das alles zusammenfügt sieht es in etwa so aus:
Der Source ist jetzt Zwar nicht perfekt (und auch nicht zu 100% getestet) aber er müsste Funktionieren, und müsste Veranschaulichen, was gemacht wird!
PHP Code:
Dim url As String
url = "ftp://" + ID.Text + ":" + PW.Text + "@" + Server.Text + "/" + Datei.Text
Function Upload(ByVal Daten As String)
Try
Using wc As New Net.WebClient()
wc.UploadString(url, Daten)
End Using
Catch ex As Exception
MsgBox("Fehler")
End Try
End Function
Der Vorgang des hochladens (im Beispiel die Funktion "uploaden(daten as string)" der Information(die Abgerufen werden muss!) muss in einer Endlosschleife wiederholt werden, die sich alle paar Minuten/Stunden wiederholt:
PHP Code:
while 1
uploaden(daten)
System.Threading.Thread.Sleep("wartezeit in millisekunden")
while end
jedoch müssen davor die Daten ausgelesen werden. Dies geht über diesen SQL-Befehl (liest die top 10 aus):
PHP Code:
SELECT * FROM (
SELECT name, level, rownum AS x
FROM tabelle
ORDER BY level
)
WHERE x <= 10;
um die Daten abzurufen, müsste man eine SQL-Reader einbauen:
PHP Code:
Dim myConnection As SqlConnection = New SqlConnection()
Dim cmd As New SqlCommand
Dim myAdapter As New SqlDataAdapter
Dim myData As SqlDataReader
myConnection.ConnectionString = "Server=ServerIP;Database=Datenbank;Uid=Benutzername;Pwd=Passwort;"
Try
myConnection.Open()
Catch myerror As SqlException
End Try
cmd.CommandText = "unser SQL-Befehl"
myAdapter.SelectCommand = cmd
myData = cmd.ExecuteReader()
While myData.Read()
End While
myData.Close()
myConnection.Close()
Wenn man dann das alles zusammenfügt sieht es in etwa so aus:
PHP Code:
Public Class Form1
Dim x As Integer = 0
Dim url As String
Dim Daten As Array
Dim myConnection As SqlConnection = New SqlConnection()
Dim cmd As New SqlCommand
Dim myAdapter As New SqlDataAdapter
Dim myData As SqlDataReader
Function Upload(ByVal Daten As String)
Try
Using wc As New Net.WebClient()
wc.UploadString(url, Daten)
End Using
Catch ex As Exception
MsgBox("Fehler")
End Try
End Function
Function sql()
x = 0
cmd.CommandText = "SELECT * FROM (SELECT name, level, rownum AS x FROM tabelle ORDER BY level) WHERE x <= 10;"
myAdapter.SelectCommand = cmd
myData = cmd.ExecuteReader()
While myData.Read()
Return Daten
End While
myData.Close()
End Function
Private Sub Start(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click
myConnection.ConnectionString = "Server=ServerIP;Database=Datenbank;Uid=Benutzername;Pwd=Passwort;"
Try
myConnection.Open()
Catch myerror As SqlException
End Try
Thread.Text = "<object data=""" + "http://" + Server.Text + "/" + Datei.Text + """ type=""text/plain"" width=""300"" height=""100""> </object>"
url = "ftp://" + ID.Text + ":" + PW.Text + "@" + Server.Text + "/" + Datei.Text
While 1
upload(Daten)
daten = ""
System.Threading.Thread.Sleep(3600000)
End While
myConnection.Close()
End Sub
End Class
Download:







