Antworten auf deine Fragen:
Neues Thema erstellen

[PHP] Port Check

Acromelaga

Nicht mehr ganz neu hier

PHP:
 Port Check  ~Erledigt~[/b]

Guten Morgen, Guten Tag, Guten Abend... was auch immer :)

'n Freund von mir hat mich gebeten für ihn eine Homepage zu erstellen.
Und dabei hat er auch einen ausergewöhnlichen Wunsch geäußert.
Er möchte ein "Port Check"
Er hat es mir in etwa so beschrieben:
"Wenn ich eine .exe starte welche den Port xyz verwendet, soll dort "verfügbar"
stehen, wenn die .exe nicht läuft, soll dort "nicht verfügbar" stehen."
Okay... dachte ich mir wird ja wohl kein großes Problem sein, einfach
Google fragen und dann glücklich sein :D
Okay... Google hat mir nun 2 Script-Codes geliefert welche ich sehr vielversprechend fand.

[php]
<?php

  $server  = "127.0.0.1";
  $port   = "xyz1";
  $port2   = "xyz2";
  $timeout = "10";

  if ($server and $port and $timeout) {
    $verbinding1 =  @fsockopen("$server", $port, $errno, $errstr, $timeout);
    $verbinding2 =  @fsockopen("$server", $port2, $errno, $errstr, $timeout);
  }
  if($verbinding1) {
    echo "verfügbar";
  }
  else {
    echo "nicht verfügbar";
  }
  if($verbinding2) {
    echo "verfügbar";
  }
  else {
    echo "nicht verfügbar";
  }
?>
PHP:
    <?php
    $op = @fsockopen("127.0.0.1", xyz, $errno, $errstr, 1);
    if($op >= 1){
    echo 'Verfügbar';}
    else{ echo 'Nicht Verfügbar'; }
    ?>
"xyz" steht immer für den Port, habe ich natürlich nicht so im Script stehen :)
So eingefügt und angeschaut...
Und ich war verblüfft... weil bei dem ersten Code was das einzigste was angezeigt wird "nicht's", einfach n leeres Feld.
Danach halt den 2. Code gesucht, gefunden und getestet.
Ergebniss: "= 1){ echo 'Verfügbar';} else{ echo 'Nicht Verfügbar'; } ?>"
Ohne die "".
Woran könnte das liegen?
Habe mehrere Ports getestet und immer das gleiche Ergebniss.
Könnt es ja selber testen und mir sagen was bei euch passiert.
Die verwendeten Ports waren/sind geöffnet...
Könnte es an der PHP-Version(5.x) liegen?
Welche Version es genau ist weiß ich leider nicht :p

Würde mich sehr über hilfe freuen :)

MfG I.C.H
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW:
PHP:
 Port Check[/b]

Hast Du schon mal in den Quelltext geschaut, ob nicht vielleicht sogar ein bisschen mehr ausgegeben wird?
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

Quell text gerade angeschaut...
Habe ich nicht dran gedacht.
An der Stelle wo der Port Check steht, steht folgenes(1. Code)
[PHP]
<?php

  $server  = "85.25.184.84";
  $port   = "12000";
  $port2   = "12001";
  $timeout = "1";

  if ($server and $port and $timeout) {
    $verbinding =  @fsockopen("$server", $port, $errno, $errstr, $timeout);
    $ircbinding =  @fsockopen("$server", $port2, $errno, $errstr, $timeout);
  }
  if($verbinding) {
    echo "1";
  }
  else {
    echo "2";
  }
  if($ircbinding) {
    echo "3";
  }
  else {
    echo "4";
  }
?>

Alles in diesem Lila-Farbton

Und der andere Code:
PHP:
    <?php
    $op = @fsockopen("127.0.0.1", 12000, $errno, $errstr, 1);
    if($op >= 1){
    echo 'Verfügbar';}
    else{ echo 'Nicht Verfügbar'; }    ?>
Dort ist nur der Teil in dem Lila-Ton
PHP:
    <?php
    $op = @fsockopen("127.0.0.1", 12000, $errno, $errstr, 1);
    if($op >

Weiß ncht ob das irgent was aussagt...
Aber würde sagen der Code ist fehlerhaft, weil dort ja eigentlich dann
z.B. "verfügbar" stehen müsste.

Weis ja nicht ob das jetz sehr viel geholfen hat.

MfG I.C.H
 

netbandit

Aktives Mitglied

AW:
PHP:
 Port Check[/b]

Ja, hast Probleme mit der Ausführung von PHP. Alles zwischen < und dem nächsten > wird als Html-Tag interpretiert, das nachfolgende als normaler Text. Schau mal beim Anbieter ob bei PHP-Dateien etwas beachtet werden muß, wie z.B. die Dateiendung (*.php, *.php5 etc.) und ob auch wirklich PHP unterstützt wird ;)
 
Zuletzt bearbeitet:

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

Also auf dem Server ist IIS7...
Musste auch erst PHP drauf spielen.
Also habe Google gefragt(Suchbegriff(e): IIS7 HP)
und bin auf den [URL="http://php.iis.net/"]3. Link[/URL] gegangen.
Mit das Teil runtergeladen und wurde uach gleich instaliert -> PHP hat funktioniert.
Also nun konnten .php datein angezeigt werden.
Vllt. was vergessen o. sogar falsch gemacht?
Und wo muss ich suchen um herrauszufinden ob ich was beachten muss.
[QUOTE]
Schau mal beim Anbieter ob bei PHP-Dateien etwas beachtet werden muß, wie z.B. die Dateiendung (*.php, *.php5 etc.)
[/QUOTE]

MfG I.C.H
 

saila

Moderatorle

AW:
PHP:
 Port Check[/b]

Hi,

wie wäre es, wenn du einfach mal nach dieser Vorlage: [url=http://de2.php.net/manual/de/function.fsockopen.php]PHP: fsockopen - Manual[/url] eine Verbindung aufbaust und z.B. mit 
[code]
echo '<pre>'; print_r($fp); echo '</pre>';
[/code]

dir anzeigen lässt, was alles an Daten vorhanden ist?

Mal ganz daon ab: Was wollen da exe-Dateien? Wenn du z.B. ein Linux-Server am laufen hast, geht da erst mal nichts mit exe-Files und selbst bei einem Windoof-System wirst du auf einem Server mit exe-Files entsprechende Probleme erhalten.
 

netbandit

Aktives Mitglied

AW:
PHP:
 Port Check[/b]

Also die Scripte sind in Ordnung; btw. ist das Zweite völlig ausreichend.

Bist Du Dir sicher, dass PHP auch gestartet/an ist? Testest Du momentan nur Local oder schon Online?

Grüße
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

@saila
Danke für den Tipp.
Aber wie gesagt mache die Homepage für nen Bekannten.
Und ich glaube das du unter Server etwas wie FTP verstehst wo man keine
.exe-Files ausführen kann. Er besizt jedoch einen vServer, das ist nicht
nur für das Web. Aber wie gesagt, danke.

@netbandit
Okay, wenn doe Scripts korekt sind, das freut mich, und das ich nur
das kürzere benötige auch.
Das Dokument teste ich sowohl local als auch online.
Und sowohl bei mir, als auch beim Server sind die Fehler vorhanden.
Und ob PHP an/gestartet ist: müsste ja eigentlich weil es über IIS7 läuft und
auch PHP-Files gelesen werden können.
Kenne mich sehr wenig mit IIS7 aus.

MfG I.C.H
 

saila

Moderatorle

AW:
PHP:
 Port Check[/b]

Naja um zu prüfen ob PHP gestartet ist, reicht es aus, wenn du eine Datei mit der Endung .php auf den Server legst und in die Datei
[php]
<?php
echo 'hallo';
?>

schreibst.

Wenn du mit dem Aufruf über den Browser dann ein Hallo auf dem Schrim siehst, läuft php. Wenn nicht läuft php nicht.
 

netbandit

Aktives Mitglied

AW:
PHP:
 Port Check[/b]

Dann schau Dir mal eines der funktionierenden PHP-Files etwas genauer an. Evtl. lässt sich ja irgendwo ein Unterschied feststellen. 

[QUOTE]
Kenne mich sehr wenig mit IIS7 aus.
[/QUOTE]

Und ich überhaupt nicht, sollte mich daher an dieser Stelle mal ausklinken :hmpf:
 

saila

Moderatorle

AW:
PHP:
 Port Check[/b]

Wichtig zu wissen wäre noch, ob OpenSSL kompiliert wird. Wenn ja, muss die Adresse anderst lauten.
Was für eine Fehlermeldung erhälst du oder steht das schon irgendwo?
 
Zuletzt bearbeitet:

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

@netbandit
hehe....
Ich weiß ja auch nur das was ich so durch Google erfahren habe...
und das ist echt nicht viel.

@saila
Also.. PHP ist sowohl auf dem Server als auch bei mir funktionsfähig
bzw läuft.
Und würde ich eine Fehlermeldung kriegen, wäre ich glücklich, da ich so schnell(er)
das Problem behaben könnte, bzw. (mit euch) die Ursache finden.
Aber es kommt keine.
Bei dem langen Script wird absulut nichts ausgegeben.
Bei dem kürzeren kommt folgenes:
[QUOTE]= 1){     echo 'Verfügbar';}     else{ echo 'Nicht Verfügbar'; }     ?>[/QUOTE]
Das wird ausgegeben. Mehr nicht.

Aber wie wäre denn der Code für OpenSSL?

Gruß
 

saila

Moderatorle

AW:
PHP:
 Port Check[/b]

Naja, es gibt mehrere Möglichkeiten. Entweder hast du ein UDP-Verbindung (was explizit auch kein Exeption werfen muss), oder du bekommst erst gar keine Verbindung.

Also wichtig ist, mit dem Start des Script muss die Meldung auf dem Schirm sein: [B]Verbindung hergestellt.[/B]

Wenn das nicht der Fall ist, hast du keine Verbindung bzw. du hast zwar eine mögliche UDP-Verbindung, welche allerdings auch kein Fehler werfen muss.

Ergo: Test folgende Verbinungsmöglichkeiten:

[php]
<?php
$fp = fsockopen("udp://dieIp", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}

/* oder */
$fp = fsockopen("ssl://dieIp", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}

/* oder */
$fp = fsockopen("tls://dieIp", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}


?>
Mit diesen Beispielen wird auch Error mal ausgegeben, was in deiner Version nicht der Fall ist. Somit kannst du auch nicht ermitteln, wo ein möglicher Fehler ist.
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

Habe etwas bekommen, zwar nicht das erhoffte aber okay.
Das habe ich sowohl local als auch online bekommen

UDP:
[CODE][/CODE]
Also nichts!

SSL:
[CODE]
ERROR: 10060 - Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. 
[/CODE]

TLS:
[CODE]
ERROR: 10060 - Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. 
[/CODE]

Hilft es weiter :)?

Gruß
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

Adresse = IP?
Wenn ja muss ich nochmal schauen
Weil Port dürfte eigentlich nicht falsch sein.

Gruß
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

PORT80:

UDP:
Nichts

SSL & TLS
[CODE][COLOR=#000000]ERROR: 0 - 
[/COLOR][/CODE][COLOR=#000000]

Also keine Errors vorhanden?[/COLOR]

Gruß
 

saila

Moderatorle

AW:
PHP:
 Port Check[/b]

Na dann solltest du ja eine Verbindung haben, wenn Error = 0 also false ist. Versuch mal etwas auszuführen über die Verbindung.

Wenn die Adresse stimmt und du den korrekten Port hast, dann ist der Server nicht am Netz :) oder kannst du über den Browser auf dem zu kontaktierenden Server etwas aufrufen?
 

Acromelaga

Nicht mehr ganz neu hier

AW:
PHP:
 Port Check[/b]

Also kann die Homepage von meinem Rechner aufrufen.
Also ist Server korrekt.
IP geht ja auch wie du siehst "ERROR: 0 -"...
Könnte nochmal die Ports damit checken die verwendet werden sollen.
Aber was machen, wenn dort das selbe bei rauskommt?

Gruß
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben