2016-04-06 6 views

Antwort

1

Ich nehme an, Sie sind auf einem Linux-System. Sie können Socket-Statistiken über das Dienstprogramm ss abrufen. Z.B. um alle Verbindungen zu Ihrem http oder https-Port auflistet, können Sie verwenden:

ss -t '(sport = :http or sport = :https)' 

Sie weiter diese von IP filtern. Also lassen Sie uns sagen, Sie alle Verbindungen von der Remote-Adresse filtern möchten 1.2.3.4:

ss -t '(sport = :http or sport = :https)' dst 1.2.3.4 

Jetzt Mapping Verbindungen zu Ist-Prozesse ist ein bisschen schwierig, wie traditionell, eine Verbindung durch ein Verfahren jeder behandelt worden. Aber das ist nicht immer der Fall. Sie können ss Display die Hörprogramme mit dem p Schalter wie so lassen:

ss -tp '(sport = :http or sport = :https)' dst 1.2.3.4 

Sie werden feststellen, dass ss in einer Linie diejenigen bequem ist die Auflistung, so können wir diese grep und die unique zählen:

ss -tp '(sport = :http or sport = :https)' dst 1.2.3.4 | grep users | sort | uniq | wc -l 

Putting dies zusammen:

$count = exec(sprintf(
    'ss -tp "(sport = :http or sport = :https)" dst %s | grep users | sort | uniq | wc -l', 
    escapeshellarg($remoteAddress) 
)); 
+0

danke für die Beantwortung, aber es zeigt Null. Das ist immer Null. –

+0

Sorry, in den letzten beiden Beispielen wurde der 'p'-Parameter verpasst. – DaSourcerer

+0

können Sie bitte den Code aktualisieren? –

Verwandte Themen