Przejdź do głównej zawartości

implementacja Netstat w PHP


Netstat (Network Statistics) to narzędzie wiersza poleceń, które dostarcza informacji o połączeniach sieciowych, trasach routingu, statystykach interfejsów i innych aspektach sieci. Jest używane do diagnozowania problemów sieciowych i monitorowania aktywności sieciowej.

Funkcje Netstat

  1. Wyświetlanie aktywnych połączeń: Netstat pokazuje listę wszystkich aktywnych połączeń TCP, UDP oraz UNIX.
  2. Informacje o portach: Można uzyskać informacje o otwartych portach oraz tych, które nasłuchują.
  3. Statystyki protokołów: Netstat dostarcza statystyki dla różnych protokołów, takich jak TCP, UDP, ICMP.
  4. Trasy routingu: Narzędzie pokazuje tablicę routingu, co jest przydatne do analizy tras pakietów w sieci.
  5. Interfejsy sieciowe: Netstat wyświetla statystyki dla interfejsów sieciowych, takie jak liczba wysłanych i odebranych pakietów.

Przykłady użycia Netstat

  • Wyświetlenie wszystkich połączeń i portów:
    netstat -a
    
  • Wyświetlenie tylko połączeń TCP:
    netstat -at
    
  • Wyświetlenie tylko połączeń UDP:
    netstat -au
    
  • Wyświetlenie portów nasłuchujących:
    netstat -l
    

Implementacja Netstat w PHP

Aby zaimplementować funkcjonalność Netstat w PHP, można użyć funkcji exec() do wykonania polecenia systemowego i przetworzenia wyników. Poniżej znajduje się przykładowy kod PHP:

<?php
// Funkcja do wykonania polecenia Netstat i zwrócenia wyników
function getNetstatOutput() {
    // Wykonanie polecenia Netstat
    $output = [];
    exec('netstat -a', $output);
    
    // Przetworzenie wyników
    $connections = [];
    foreach ($output as $line) {
        // Podział linii na kolumny
        $columns = preg_split('/\s+/', $line);
        if (count($columns) >= 6) {
            $connections[] = [
                'Proto' => $columns[0],
                'Local Address' => $columns[3],
                'Foreign Address' => $columns[4],
                'State' => $columns[5]
            ];
        }
    }
    
    return $connections;
}

// Wywołanie funkcji i wyświetlenie wyników
$netstatData = getNetstatOutput();
echo '<pre>';
print_r($netstatData);
echo '</pre>';
?>

Ten kod wykonuje polecenie netstat -a, przetwarza wyniki i wyświetla je w czytelnej formie. Możesz dostosować ten kod do swoich potrzeb, np. filtrować wyniki lub formatować je w inny sposób.

Oto dwa dodatkowe przykłady implementacji funkcji Netstat w PHP:

Przykład 1: Wyświetlanie połączeń TCP

Ten przykład pokazuje, jak wyświetlić tylko połączenia TCP za pomocą Netstat i PHP.

<?php
// Funkcja do wykonania polecenia Netstat dla połączeń TCP
function getTcpConnections() {
    // Wykonanie polecenia Netstat dla połączeń TCP
    $output = [];
    exec('netstat -at', $output);
    
    // Przetworzenie wyników
    $connections = [];
    foreach ($output as $line) {
        // Podział linii na kolumny
        $columns = preg_split('/\s+/', $line);
        if (count($columns) >= 6) {
            $connections[] = [
                'Proto' => $columns[0],
                'Local Address' => $columns[3],
                'Foreign Address' => $columns[4],
                'State' => $columns[5]
            ];
        }
    }
    
    return $connections;
}

// Wywołanie funkcji i wyświetlenie wyników
$tcpConnections = getTcpConnections();
echo '<pre>';
print_r($tcpConnections);
echo '</pre>';
?>

Przykład 2: Wyświetlanie portów nasłuchujących

Ten przykład pokazuje, jak wyświetlić porty nasłuchujące za pomocą Netstat i PHP.

<?php
// Funkcja do wykonania polecenia Netstat dla portów nasłuchujących
function getListeningPorts() {
    // Wykonanie polecenia Netstat dla portów nasłuchujących
    $output = [];
    exec('netstat -l', $output);
    
    // Przetworzenie wyników
    $ports = [];
    foreach ($output as $line) {
        // Podział linii na kolumny
        $columns = preg_split('/\s+/', $line);
        if (count($columns) >= 6) {
            $ports[] = [
                'Proto' => $columns[0],
                'Local Address' => $columns[3],
                'Foreign Address' => $columns[4],
                'State' => $columns[5]
            ];
        }
    }
    
    return $ports;
}

// Wywołanie funkcji i wyświetlenie wyników
$listeningPorts = getListeningPorts();
echo '<pre>';
print_r($listeningPorts);
echo '</pre>';
?>

Te przykłady pokazują, jak można użyć PHP do wykonania różnych poleceń Netstat i przetworzenia wyników w czytelnej formie. 

źródło



Komentarze