Quale porta utilizza un determinato programma? [chiuso]


99

Voglio essere in grado di capire quale porta sta usando un particolare programma. Esistono programmi disponibili online o forniti con Windows che mi diranno quali processi stanno utilizzando quali porte sul mio computer?

PS: prima di ridimensionare questo per non essere una questione di programmazione, sto cercando il programma per testare del codice di rete.


7
Indipendentemente dal fatto che lo utilizzerai come parte di qualche progetto di programmazione, non è un problema di programmazione.
Gare di leggerezza in orbita

Risposte:


149

netstat -b -aelenca le porte in uso e ti fornisce l'eseguibile che le sta usando. Credo che sia necessario essere nel gruppo degli amministratori per fare questo, e non so quali implicazioni per la sicurezza ci siano su Vista.

Di solito aggiungo -nanche per renderlo un po 'più veloce, ma l'aggiunta -bpuò renderlo piuttosto lento.

Modifica : se hai bisogno di più funzionalità di quelle fornite da netstat, vasac suggerisce di provare TCPView .


1
Se qualcuno ha i diritti per modificare una risposta, considera l'aggiunta della risposta di vasac di seguito (TCPView) per chiunque abbia bisogno di una versione più completa di funzionalità con una vera gui
AlexeyMK

Ho aggiunto il collegamento a TCPView alla mia risposta.
Graeme Perrow

1
c'è qualche modo con il firewall?
Mohammad Kermani

42

TCPView può fare quello che hai chiesto.


1
Grazie; netstat è più che sufficiente per le mie esigenze, ma se mai avessi bisogno di qualcosa di più hardcore, sarò sicuro di usare TCPView. Dovrebbe essere aggiunto alla risposta accettata ma purtroppo non ho ancora il diritto di modificare.
AlexeyMK

Sto usando l'utilità Netstat fornita con XAMPP. Ma questa utility standalone è molto utile. Grazie.
Shiyaz

25

In Vista, sono necessari privilegi elevati per utilizzare l'opzione -b con netstat. Per aggirare questo problema, potresti eseguire "netstat -ano" che mostrerà tutte le porte aperte insieme all'id del processo associato. È quindi possibile utilizzare l'elenco delle attività per cercare quale processo ha l'ID corrispondente.

C:\>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  ...
  TCP    [::]:49335             [::]:0                 LISTENING       1056
  ...

C:\>tasklist /fi "pid eq 1056"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
sqlservr.exe                  1056 Services                   0     66,192 K

13

Potresti già avere Process Explorer (da Sysinternals, ora parte di Microsoft) installato. In caso contrario, vai avanti e installalo ora: è fantastico.

In Process Explorer: individuare il processo in questione, fare clic con il tasto destro e selezionare la scheda TCP / IP. Ti mostrerà anche, per ogni socket, una traccia dello stack che rappresenta il codice che ha aperto quel socket.


7

Se preferisci un'interfaccia GUI, CurrPorts è gratuito e funziona con tutte le versioni di Windows. Mostra le porte e quale processo le ha aperte.


un'altra buona alternativa. wow, non sapevo che questo fosse un argomento così popolare :)
AlexeyMK


4

Windows 8 (e probabilmente 7 + Vista) forniscono anche una visualizzazione in Resource Monitor. Se selezioni la scheda Rete, c'è una sezione chiamata "Porte di ascolto". Può ordinare per numero di porta e vedere quale processo lo sta utilizzando.


esattamente quello di cui avevo bisogno, 10x!
soninob

3

Windows viene fornito con l' netstatutilità, che dovrebbe fare esattamente quello che vuoi.



1

Puoi usare il comando 'netstat' per questo. C'è una descrizione di come fare questo genere di cose qui .



-1

i programmi firewall più decenti dovrebbero consentirti di accedere a queste informazioni. So che Agnitum OutpostPro Firewall lo fa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.