2016-05-11 17 views
0

Also versuche ich ein Admin-Panel zu machen und auch den Status aller verschiedenen Dienste anzuzeigen.Ports reagieren nicht, funktionieren aber?

Um dies zu erreichen, verwende ich eine Funktion, um zu sehen, ob Ports reagieren oder nicht. Hier

ist der Code:

public function getPort($ports, $host = NULL) { 

    if (!$host) { $host = "somesite.com"; } 

    $ports = array($ports); 

    foreach ($ports as $port) { 
     $connection = @fsockopen($host, $port); 

     if (is_resource($connection)) { 
      return "<span class=\"label label-success\">Online</span>"; 
      fclose($connection); 
     } else { 
      return "<span class=\"label label-danger\">Offline</span>"; 
     } 
    } 
} 

Ports wie Port 80 und 21 als online angezeigt werden, aber nicht Ports wie 3306 für MySQL oder 9987. Gibt es eine Möglichkeit für mich zunächst zu prüfen, warum es so ist und dann auch das lösen, so dass es als online erscheint?

Antwort

1

Standardmäßig ist der 3306-Port von MySQL nur unter der lokalen IP-Adresse 127.0.0.1 verfügbar. Wenn Sie den Port also außerhalb des Computers testen, wird er als geschlossen angezeigt.

Wenn Sie Ihre Dienste von einem anderen Computer aus überwachen möchten, stellen Sie sicher, dass Ihre Firewall dies zulässt, und stellen Sie sicher, dass Ihre Dienste globale IP-Adressen empfangen, nicht 127.0.0.1 (Sie können dies einfach mit netstat -an |grep LISTEN überprüfen).

Verwandte Themen