Ich versuche, alle ausgehenden Verbindungen auf einer bestimmten Portnummer auf einem Linux-Computer mit einem Python-Skript zu analysieren. Die einfachste Implementierung scheint darin zu bestehen, einen Subprozess für netstat zu öffnen und sein stdout zu parsen.
Ich kann mir vorstellen, dass jemand dieses Problem schon einmal hatte und bin überrascht, keine Netstat-Parser online zu finden. Ist das einfach nicht groß genug für ein Problem, das Menschen teilen müssen?
Die grundlegenden Informationen, die Sie benötigen könnten, finden Sie unter / proc-Dokumentation Wenn Sie ein Beispiel sehen möchten, werfen Sie einen Blick auf: A python netstat in weniger als 100 Zeilen Code
Wenn Sie die Verbindung, die durch einen bestimmten Prozess geöffnet wurde, steuern möchten, können Sie psutil:
verwenden %Vor%Intern verwendet psutil / proc. Wenn Sie an Verbindungen zu / von einer bestimmten Portnummer auf Systemebene interessiert sind, können Sie sich ansehen, wie psutil sie implementiert.
Bearbeiten: Ab psutil 2.1.0 können Sie auch systemweite Verbindungen mit net_connections () :
%Vor%Anstatt die Ausgabe von netstat zu analysieren, könnten Sie den / proc-Eintrag für jeden Prozess durchsehen, um die geöffneten Sockets zu sehen. Es gibt ein ziemlich einfaches Perl-Skript, das dies tut , das Sie in Python übersetzen könnten.