Який порт використовує дана програма? [зачинено]


99

Я хочу мати можливість зрозуміти, який порт використовує певна програма. Чи є в Інтернеті якісь програми, які оснащені вікнами, які підкажуть, які процеси використовують, які порти на моєму комп’ютері?

PS - перед тим, як ви скасуєте це за те, що це не питання програмування, я шукаю програму перевірити якийсь мережевий код.


7
Незалежно від того, чи будете ви використовувати це в рамках якогось проекту програмування, це не проблема програмування.
Гонки легкості по орбіті

Відповіді:


149

netstat -b -aперелічує порти, які використовуються, і дає вам виконуваний файл, який використовує кожен. Я вважаю, що для цього вам потрібно бути в групі адміністраторів, і я не знаю, які наслідки для безпеки існують у Vista.

Я зазвичай додаю -nтакож, щоб зробити це трохи швидше, але додавання -bможе зробити це досить повільним.

Редагувати : Якщо вам потрібно більше функцій, ніж надає netstat, васак пропонує спробувати TCPView .


1
Якщо хтось має право редагувати відповідь, подумайте, як додати відповідь vasac нижче (TCPView) для тих, хто потребує більш повноцінної версії цієї версії з справжнім gui
AlexeyMK,

Я додав посилання на TCPView до своєї відповіді.
Graeme Perrow

1
чи є спосіб із брандмауером?
Мохаммед Кермані

42

TCPView може робити те, що ви просили.


1
Дякую; netstat більш ніж достатньо для моїх потреб, але якщо мені колись знадобиться щось більш жорстке, я обов'язково використовую TCPView. Слід додати до прийнятої відповіді, але, на жаль, я ще не маю права редагувати.
AlexeyMK

Я використовував утиліту Netstat, яка постачається з XAMPP. Але ця автономна утиліта дуже корисна. Дякую.
Шияз

25

У Vista вам потрібні підвищені привілеї, щоб використовувати опцію -b з netstat. Щоб обійти це, ви можете запустити "netstat -ano", який покаже всі відкриті порти разом із пов'язаним ідентифікатором процесу. Потім ви можете використовувати список завдань для пошуку того, який процес має відповідний ідентифікатор.

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

Можливо, у вас вже встановлений Провідник процесів (від Sysinternals, тепер частина Microsoft). Якщо ні, то вперед і встановіть його зараз - це просто круто.

У Провіднику процесів: знайдіть відповідний процес, клацніть правою кнопкою миші та виберіть вкладку TCP / IP. Він навіть покаже вам для кожного сокета слід стека, що представляє код, який відкрив цей сокет.


7

Якщо ви віддаєте перевагу інтерфейс GUI, CurrPorts безкоштовний і працює з усіма версіями Windows. Показує порти та який процес має їх відкритими.


ще одна хороша альтернатива. уау, не знав, що це така популярна тема :)
AlexeyMK


4

Windows 8 (і, ймовірно, 7 + Vista) також надає перегляд у Resource Monitor. Якщо ви виберете вкладку «Мережа», є розділ «Порти прослуховування». Можна сортувати за номером порту та побачити, який процес використовує.


саме те, що мені потрібно було, 10х!
soninob


1

У командному рядку netstat -a дасть вам багато інформації.


Я би проголосував за це, якби у мене залишилися голоси.
UnkwnTech

-1: -а не дає ідентифікатора процесу
CharlesB

@CharlesB Це робиться, якщо ви додали -oпараметр.
Маркіз Лорн

1

Для цього можна використовувати команду 'netstat'. Там є опис робити такого роду речі тут .



-1

найпристойніші програми брандмауера повинні надавати вам доступ до цієї інформації. Я знаю, що брандмауер Agnitum OutpostPro робить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.