Какой порт использует данная программа?

Я хочу иметь возможность выяснить, какой порт использует конкретная программа. Существуют ли какие-либо программы, доступные в Интернете или поставляемые с окнами, которые сообщают мне, какие процессы используют какие порты на моем компьютере?

PS - прежде чем вы понизите это, потому что это не вопрос программирования, я ищу программу для тестирования некоторого сетевого кода.


person AlexeyMK    schedule 19.09.2008    source источник
comment
Независимо от того, собираетесь ли вы использовать это как часть какого-либо проекта по программированию, это не проблема программирования.   -  person Lightness Races in Orbit    schedule 26.07.2011


Ответы (12)


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

Обычно я также добавляю -n, чтобы сделать его немного быстрее, но добавление -b может сделать его довольно медленным.

Изменить: если вам нужно больше функциональных возможностей, чем предоставляет netstat, vasac предлагает попробовать TCPView.

person Graeme Perrow    schedule 19.09.2008
comment
Если у кого-то есть права на редактирование ответа, рассмотрите возможность добавления ответа vasac ниже (TCPView) для всех, кому нужна более полнофункциональная версия с реальным графическим интерфейсом. - person AlexeyMK; 20.09.2008
comment
Я добавил ссылку на TCPView в свой ответ. - person Graeme Perrow; 20.09.2008
comment
есть ли способ с брандмауэром? - person Mohammad Kermani; 07.07.2014
comment
Варианты -p и -b ненадежны, см. мой ответ: superuser.com/questions/191416/ - person gavenkoa; 04.04.2021

TCPView может делать то, что вы просили.

person vasac    schedule 19.09.2008
comment
Спасибо; netstat более чем достаточно для моих нужд, но если мне когда-нибудь понадобится что-то более хардкорное, я обязательно воспользуюсь TCPView. Должен быть добавлен к принятому ответу, но, увы, у меня пока нет прав на редактирование. - person AlexeyMK; 20.09.2008
comment
Я использовал утилиту Netstat, которая поставляется с XAMPP. Но эта автономная утилита очень полезна. Спасибо. - person Shiyaz; 13.09.2017

В 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
person Jim Olsen    schedule 20.09.2008

Возможно, у вас уже установлен Process Explorer (от Sysinternals, теперь часть Microsoft). Если нет, продолжайте и установите его прямо сейчас — это просто круто.

В Process Explorer: найдите нужный процесс, щелкните правой кнопкой мыши и выберите вкладку TCP/IP. Он даже покажет вам для каждого сокета трассировку стека, представляющую код, открывший этот сокет.

person Adam Mitz    schedule 19.09.2008
comment
Есть ли способ сделать это без выбора процесса? В случае, если кто-то хочет найти процесс по порту? - person Anuraag Vaidya; 19.01.2021

Если вы предпочитаете графический интерфейс, CurrPorts бесплатен и работает со всеми версиями Windows. Показывает порты и какой процесс их открыл.

person ctcherry    schedule 19.09.2008
comment
еще одна хорошая альтернатива. вау, не знал, что это такая популярная тема :) - person AlexeyMK; 20.09.2008

«netstat -natp» — это то, что я всегда использую.

person Steve Baker    schedule 19.09.2008

Windows 8 (и, вероятно, 7 + Vista) также предоставляет представление в мониторе ресурсов. Если вы выберете вкладку «Сеть», появится раздел «Порты прослушивания». Может сортировать по номеру порта и видеть, какой процесс его использует.

person Mikezx6r    schedule 03.08.2013
comment
именно то, что мне нужно, 10x! - person soninob; 23.09.2019

Windows поставляется с утилитой netstat, которая должна делать именно то, что вам нужно.

person Adam Rosenfield    schedule 19.09.2008

В командной строке netstat -a даст вам много информации.

person CodeRot    schedule 19.09.2008
comment
Я бы проголосовал за это, если бы у меня остались голоса. - person UnkwnTech; 20.09.2008
comment
-1: -a не дает идентификатор процесса - person CharlesB; 01.06.2011
comment
@CharlesB Это произойдет, если вы добавите параметр -o. - person user207421; 03.08.2013

Для этого вы можете использовать команду «netstat». Описание подобных действий есть здесь.

person tkerwin    schedule 19.09.2008

У меня работает Сканер открытых портов.

person Arne Evertsson    schedule 19.09.2008

большинство приличных программ брандмауэра должны позволить вам получить доступ к этой информации. Я знаю, что это делает Agnitum OutpostPro Firewall.

person Toby Mills    schedule 19.09.2008