Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zliczanie połączeń z portem
--Nowy--
post 1.04.2012, 15:08:08
Post #1





Goście







IP:PORT

Jak zliczyć ilość połączeń z danym PORTem?

Kolega mi napisał 'przez exec w php'

Tylko nie wiem troche o co chodzi haha.gif
Go to the top of the page
+Quote Post
Magic WWW
post 1.04.2012, 15:17:07
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

Ostrzeżenie: (0%)
-----


  1. // Ilość połączeń na porcie 80
  2. $count = shell_exec("netstat -an | grep \":80\" | grep ESTABLISHED | awk '{print $4\"t\"$5}' | sort -n -k1");


Ogólnie prawie na wszystkich hostingach jest zablokowana funkcja shell_exec. Polecam zapoznać się z podstawami PHP.

Ten post edytował Magic WWW 1.04.2012, 15:17:35
Go to the top of the page
+Quote Post
--Nowy--
post 1.04.2012, 15:37:40
Post #3





Goście







Podstawy to coś co można znaleźć w internetowym kursie. Dla mnie to już coś bardziej zaawanowanego.

Dzięki za kod, ale i tak nie wiem co dalej z nim zrobić, przejrzałem manuala ale i tak nie wiem jak zwrócić wynik.
Go to the top of the page
+Quote Post
Magic WWW
post 1.04.2012, 15:38:54
Post #4





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

Ostrzeżenie: (0%)
-----


Wklepujesz kod, który Ci podałem do swojego skryptu. Wynik zapisywany jest w zmiennej $count.

  1. // Wyświetlanie wyniku
  2. echo $count;
Go to the top of the page
+Quote Post
-Gość-
post 1.04.2012, 15:42:47
Post #5





Goście







Czyli jeżeli zmienna jest pusta = nie ma żadnego połączenia na tym porcie tak?
Go to the top of the page
+Quote Post
Magic WWW
post 1.04.2012, 15:44:32
Post #6





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

Ostrzeżenie: (0%)
-----


Tak. Dodam tylko, że to rozwiązanie działa tylko pod Linuxem, pod Windowsa troszeczkę inaczej to wygląda.

Rozwiązanie pod windowsa:
  1. // Wersja Win: Polska
  2. var_dump(shell_exec('netstat -a -n | find ":80" | find /C "USTANOWIONO"'));
  3.  
  4. // Wersja Win: Angielska
  5. var_dump(shell_exec('netstat -a -n | find ":80" | find /C "ESTAB"'));


Ogólnie zabawy jest z tym smile.gif

Ten post edytował Magic WWW 1.04.2012, 15:52:34
Go to the top of the page
+Quote Post
--Nowy--
post 1.04.2012, 15:56:33
Post #7





Goście







Tak dla pewności..

Mam serwer dedykowany (IP XX.XX.XXX.X) zainstalowane apache i php.

Wgrywam sobie plik index.php

  1.  
  2. $count = shell_exec("netstat -an | grep \":11002\" | grep ESTABLISHED | awk '{print $4\"t\"$5}' | sort -n -k1");
  3.  
  4. echo $count;
  5.  


I otrzymuje liczbe połączeń z portem 11002 tak?

Jeśli zmienna jest pusta, oznacza to ze nie ma polaczen tak?

Sry, ale wole być pewny.
Go to the top of the page
+Quote Post
Magic WWW
post 1.04.2012, 15:58:54
Post #8





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

Ostrzeżenie: (0%)
-----


Spróbuj wgrać coś takiego, nie mam Linuxa aktualnie dostępnego i pisałem polecenie (kilka postów wcześniej) na czuja.

  1. var_dump(shell_exec('netstat -an | find ":11002" | find /C "ESTABLISHED"'));


Problem może być z nazwą "ESTABLISHED", nie pamiętam jak tam linux traktował to.

Ten post edytował Magic WWW 1.04.2012, 16:11:33
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 19:24