Permalänk

Räkna anslutningar till port

Hej!

Det är så att jag vill räkna hur många anslutningar som finns till en viss port på nätverket. Om någon ansluter till t.ex. min IP:2991, så vill jag alltså printa ut hur många anslutningar som är just nu.

Har försökt med

<?php $output = shell_exec("netstat -an |grep :2991 |wc -l"); echo $output; ?>

Men kan inte få det att fungera. Det returnerar bara 0 även fast jag vet att det är anslutningar.
Webbservern är en linux burk och porten jag ska checka går till en windowsburk på nätverket.
Vad är det som är fel?

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem
Skrivet av lundahldaniel:

Hej!

Det är så att jag vill räkna hur många anslutningar som finns till en viss port på nätverket. Om någon ansluter till t.ex. min IP:2991, så vill jag alltså printa ut hur många anslutningar som är just nu.

Har försökt med

<?php $output = shell_exec("netstat -an |grep :2991 |wc -l"); echo $output; ?>

Men kan inte få det att fungera. Det returnerar bara 0 även fast jag vet att det är anslutningar.
Webbservern är en linux burk och porten jag ska checka går till en windowsburk på nätverket.
Vad är det som är fel?

Möjligt att du måste ange full path till binärerna netstat,grep och wc.

Permalänk
Skrivet av iXam:

Möjligt att du måste ange full path till binärerna netstat,grep och wc.

Hur gör man detta? Har aldrig använt mig utav netstat förut.

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem
Skrivet av lundahldaniel:

Hur gör man detta? Har aldrig använt mig utav netstat förut.

Först och främst så måste du ju ha tillgång till netstat vilket förmodligen inte någon webhoster ger. Om du har en egen server så lär du nog ha tillgång till det och då KAN det vara så att hela pathen till nestat är "/bin/netstat". Men det kan vara annorlunda på olika distar. Bäst gör du i att logga in med ssh och kör "which netstat", "which grep" och " which wc".

Permalänk

Det är min egen server så jag har tillgång till netstat. Testade att köra

<?php $output = shell_exec("/bin/netstat -an | /bin/grep :2991 | /usr/bin/wc -l"); echo $output; ?>

Men det ger fortfarande 0 i resultat. Porten jag söker på används på en annan dator, har det någon betydelse?

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem
Skrivet av lundahldaniel:

Det är min egen server så jag har tillgång till netstat. Testade att köra

<?php $output = shell_exec("/bin/netstat -an | /bin/grep :2991 | /usr/bin/wc -l"); echo $output; ?>

Men det ger fortfarande 0 i resultat. Porten jag söker på används på en annan dator, har det någon betydelse?

Har du kört "netstat -an" i shell för att debugga?

Permalänk
Skrivet av iXam:

Har du kört "netstat -an" i shell för att debugga?

Det ger mig flera rader av tcp anslutningar och några udp men ser ingenting om den porten.

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem
Skrivet av lundahldaniel:

Det ger mig flera rader av tcp anslutningar och några udp men ser ingenting om den porten.

Ok. Eftersom UDP är connectionless så ska man inte kunna se det i netstat utan du får bara se vilka portar det lyssnas på.
Och nu när du vet att det inte visas i shell så vet du att det inte nödvändigtvis är något fel på PHP-koden så du ska fortsätta att testa i shell tills det fungerar där.