Was schwers könner sind gefragt

Status
Nicht offen für weitere Antworten.

BomberJack

Erfahrenes Mitglied
Hi all,
ich hätte mal ne schwere frage und zwar:
wie schaffe ich es daten von einem server auszulesen via telnet und in php oder ähnlicher sprache zu verarbeiten.
hier noch mal genauer erleutert

mit telnet connecte ich zu einem server dann muß ich "c" drücken und meine userdaten eingeben danach kann ich meine abfragen machen (/whois usw.) dies möchte ich nun auf einer webpage ausgeben das man auf der page schon sieht wer gerde online ist auf dem server.
jetzt nun die fragen:
1. wie connecte (beispiel.server.de Port: 6112) ich mit der page??
2. wie schaffe ich es die daten auszulesen??

Kann mir da wer weiterhelfen ich bin da leider komplett überforder wäre echt super wenn wer rat weiß thx.

MFG
BomberJack



PS: sollte das der falsche bereich sein wo ich dies hier reingepostet hab gebt mir bitte bescheit sonst find ich den thread nimmer :(
 
da haste Dir aber wirklich was vorgenommen ;)

Ich hab sowas leider auch noch nie gemacht, und musste mich auch erst "schlau machen", bin aber nicht ganz "schlau" geworden :(

soviel weiß ich aber: es gibt einen PHP-Befehl fsockopen(hostname,port,errno,error,timeout) womit Du eine Verbindung zu einem Server aufbauen kannst. Anschließend kannst Du mit fwrite() bzw. fread() Daten zu dem Server senden, bzw. auslesen.

Wie gesagt, hab keine Ahnung, ob und wie das genau geht, hab aber ein paar Links, die Dich evtl. weiterbringen:

http://php3.de/manual/de/function.fsockopen.php
http://php3.de/manual/de/ref.sockets.php
http://www.php3.de/manual/ref.exec.php


hoffe damit kommst Du weiter. :)

Dunsti
 
hmmm schade hab mir erlich erhofft das du sogar ne connect zeile für mich parrat hast aber das ist auch echt happig hab mir mal die urls angeschaut und denke das es eigentlich mit folgendenskript laufen sollte aber das tut es leider bzw. vieleicht wisst ihr ja rat ich hab entsprechende sachen dazugeschrieben in rot wo ich hilfe brauch :D

<?php
error_reporting (E_ALL);

/* Warten auf Verbindungen */
set_time_limit (0);

$address = 'europe.battle.net';
$port = 6112;
usernamen und passwort für verbindung eingeben- wie??
if (($sock = socket (AF_INET, SOCK_STREAM, 0)) < 0) {
echo "socket() fehlgeschlagen: Grund: " . strerror ($sock) . "\n";
}
iner zeile obendrüber hat skript schon abebrochen weil ein fehler drin sein soll :(

if (($ret = bind ($sock, $address, $port)) < 0) {
echo "bind() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
}

if (($ret = listen ($sock, 5)) < 0) {
echo "listen() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
}

do {
if (($msgsock = accept_connect($sock)) < 0) {
echo "accept_connect() fehlgeschlagen: Grund: " . strerror ($msgsock) . "\n";
break;
}
do {
$buf = '';
$ret = read ($msgsock, $buf, 2048);
if ($ret < 0) {
echo "read() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
break 2;
}
if ($ret == 0) {
break 2;
}
$buf = trim ($buf);
if ($buf == 'quit') {
close ($msgsock);
break 2;
}
$talkback = "PHP: Du sagtest '$buf'.\n";
write ($msgsock, $talkback, strlen ($talkback));
echo "$buf\n";
} while (true);
close ($msgsock);
} while (true);

close ($sock);
?>
 
Und so stell ich mir das in etwa vor:

int connect (int socketwas ist das, string address wird wohl die url sein[, int port]und hier wohl der port rein )

alls nächstes breuchte ich irgendeine write angabe die dem server erstmal den befehl "c" übermittelt das ich alls nächstes username und passwort reinschreiben kann
jetzt müste ja in der theorie die connection bestehen und ich müste mit irgendeinem write befehlt halt jetzt das commando /whois einsetzte können und z.b. in eine textdatei speichern.
hört sich eigentlich garnicht so schwer an auser man hat wie ich keine ahnung wie das etz genau ablaufen soll ich hoffe mir kann wer helfen.
 
Hi all,
wollte mal fragen ob mir wer etz weiterhelfen kann. ich hab was intersantes gefunden im web und zwar den hier untenstehen code mit dem ich versucht hab zu connecten aber er bringt mir schon in line 10 fehler wieso das???

<?php
error_reporting (E_ALL);

/* Warten auf Verbindungen */
set_time_limit (0);

$address = 'europe.battle.net';
$port = 6112;

if (($sock = socket (AF_INET, SOCK_STREAM, 0)) < 0) { das ist zeile 10
echo "socket() fehlgeschlagen: Grund: " . strerror ($sock) . "\n";
}

if (($ret = bind ($sock, $address, $port)) < 0) {
echo "bind() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
}

if (($ret = listen ($sock, 5)) < 0) {
echo "listen() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
}

do {
if (($msgsock = accept_connect($sock)) < 0) {
echo "accept_connect() fehlgeschlagen: Grund: " . strerror ($msgsock) . "\n";
break;
}
do {
$buf = '';
$ret = read ($msgsock, $buf, 2048);
if ($ret < 0) {
echo "read() fehlgeschlagen: Grund: " . strerror ($ret) . "\n";
break 2;
}
if ($ret == 0) {
break 2;
}
$buf = trim ($buf);
if ($buf == 'quit') {
close ($msgsock);
break 2;
}
$talkback = "PHP: Du sagtest '$buf'.\n";
write ($msgsock, $talkback, strlen ($talkback));
echo "$buf\n";
} while (true);
close ($msgsock);
} while (true);

close ($sock);
?>
 
hi,

hab ja weiter oben schon geschrieben, daß ich da selbst leider auch net so den Plan hab. Kann Dir also leider net helfen :(

sorry

Dunsti
 
-

PHP:
<?PHP
$sock = fsockopen("europe.battle.net", 23, $errno, $errstr);
if (!$sock) {
    echo "$errstr ($errno)<br>\n";
} else {
$test=fgets($sock, 2000);
print $test;
    }
    fclose ($sock);
?>
Stell erstmal ne Verbindung über den Telnet Port her. Dann guckste, was der Server so alles von sich gibt.

Später läuft das dann so ab, dass du Meldungen vom Server auswertest, damit du weißt, wann du deine Übermittlung per fputs oder fwrite beginnen kannst. Musst ein bisschen rumfriemeln und leider auch ziemlich viel von Hand coden.
 
ok thx jetzt hab ich das connect zeug das finde ich schonmal klasse thx :D
aber wenn ich über telnet verbinde dann muß ich bei dem server erst die taste "c" drücken um danach meinen login einzugeben wie muß ich das des jetzt reinschreiben am schluß fwrite="c" oder so ähnlich??
 
Ich nehm mal an das C einfach irgendeinen Befehl sendet. Oder nur das Fenster für die Login eingabe öffnet und wenn du dann dort Ok klickst wird ein Befehl zum einloggen gesendet.

P.s. Für was brauchst du das eigentlich?
 
erlich gesagt weiß ich nicht für welchen befehl das "c" stehen soll allerdings wenn ich normales telnet nutze und auf den server connectet habe ich erstmal weißes feld nach drücken von "c" kann ich mich dann einloggen deshalb müste fwrite oder wie auch immer alls erstes kommen gefolgt von meinen login daten fwrite loginname fwrite passwort oder wie das geht das weiß ich ja leider nicht.
Ich brauch das ganz einfach für meinen Internetclan um zu wissen ob gerde ein user auf dem server online ist oder nicht (hat nix mit cs zu tun). Und das geht leider nur über telnet :(
für hilfe bin ich echt dankbar.
 
Status
Nicht offen für weitere Antworten.
Zurück