Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Determinare connessioni ad una porta specifica

    Salve,
    come al solito eccomi qui a chiedere

    Vorrei sapere se esiste in PHP la possibilità di conoscere quanti utenti sono connessi al server ad una determinata porta?


    [EPILOGO]
    Il server è dedicato, girano su dei game server, e vorrei generare delle statistiche sapendo che ogni game server logicamente usa una porta diversa.
    [/EPILOGO]

    Grazie a tutti.


    PS: ho postato anche in ASP

  2. #2
    ehm...questo è cross-posting ... cmq puoi usare netstat e tramite delle preg (espressioni regolari) puoi estrarre i dati che ti servono e fare i conteggi :)

    codice:
    C:\Documents and Settings\daniele_dll>netstat
    
    Connessioni attive
    
      Proto  Indirizzo locale       Indirizzo esterno       Stato
      TCP    pcdaniele:2888         localhost:2889         ESTABLISHED
      TCP    pcdaniele:2889         localhost:2888         ESTABLISHED
      TCP    pcdaniele:1052         server2.eonext.com:4321  ESTABLISHED
      TCP    pcdaniele:2257         64.233.183.104:http    ESTABLISHED
      TCP    pcdaniele:2288         163-99.amazon.com:http  ESTABLISHED
      TCP    pcdaniele:2300         221.147.214.24:36309   ESTABLISHED
      TCP    pcdaniele:2356         64.233.183.104:http    ESTABLISHED
      TCP    pcdaniele:2416         host136-0.pool8259.interbusiness.it:4662  TIME_W
    AIT
    ^C
    C:\Documents and Settings\daniele_dll>
    ad es questa è la stampa di un netstat su windows
    a te ovviamente serve il contrario ... ovvero serve che nella sezione indirizzo locale vi sia :TUAPORTA e poi l'altra colonna indica chi è connesso
    L'ultima colonna deve stare su ESTABLISHED xche indica connessione stabilita :)

    quindi ti estrai tutti questi dati e poi, tramite un array, ti fai una semplice somma


    ad esempio...

    codice:
    $activeconns = array('80' => 0, '110' => 0);
    $result = `netstat -n`;
    $rows = explode("\n", $result);
    while(list(, $row) = each($rows)) {
      $row = trim($row);
      if (preg_match('/^[a-z]+[ ]+[a-z0-9\._-]+?\:([0-9]+).+?ESTABLISHED$/i', $row, $results)) {
        if (isset($activeconns[$results[1]])) {
          $activeconns[$results[1]]++;
        }
      }
    }
    con questo codice tirerai fuori l'elenco delle porte!
    ti basta definire l'array activeconns con i valori che ti servono e sei apposto :)
    Al momento nell'array sono settate le porte 80 e 110

  3. #3

    Re: Determinare connessioni ad una porta specifica

    [supersaibal]Originariamente inviato da Lord.Zorak
    PS: ho postato anche in ASP [/supersaibal]
    Il crossposting è vietato
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.