web-dev-qa-db-ja.com

どこのプログラムがWindowsのポート80を使用しているかを知る方法は?

どのプログラムがWindowsのポート80を使用しているかを知る方法は?見つかりません。

159
user198729

[スタート] - > [アクセサリ] - [コマンドプロンプト]を右クリックし、[管理者として実行]をクリックします(Windows XPは通常どおり実行できます)。netstat -anbを実行して、プログラムの出力を調べます。

ところで、Skypeはデフォルトで着信接続にポート80と443を使用しようとします。

netstat -anb >%USERPROFILE%\ports.txtに続けてstart %USERPROFILE%\ports.txtを実行して、ポートとプロセスリストをテキストエディタで開くこともできます。そこで、必要な情報を検索できます。

Powershellを使用してnetstatの出力を解析し、より適切な方法で表示することもできます(または必要な方法で処理することもできます)。

$proc = @{};
Get-Process | ForEach-Object { $proc.Add($_.Id, $_) };
netstat -aon | Select-String "\s*([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+)?\s+([^\s]+)" | ForEach-Object {
    $g = $_.Matches[0].Groups;
    New-Object PSObject | 
        Add-Member @{ Protocol =           $g[1].Value  } -PassThru |
        Add-Member @{ LocalAddress =       $g[2].Value  } -PassThru |
        Add-Member @{ LocalPort =     [int]$g[3].Value  } -PassThru |
        Add-Member @{ RemoteAddress =      $g[4].Value  } -PassThru |
        Add-Member @{ RemotePort =         $g[5].Value  } -PassThru |
        Add-Member @{ State =              $g[6].Value  } -PassThru |
        Add-Member @{ PID =           [int]$g[7].Value  } -PassThru |
        Add-Member @{ Process = $proc[[int]$g[7].Value] } -PassThru;
#} | Format-Table Protocol,LocalAddress,LocalPort,RemoteAddress,RemotePort,State -GroupBy @{Name='Process';Expression={$p=$_.Process;@{$True=$p.ProcessName; $False=$p.MainModule.FileName}[$p.MainModule -eq $Null] + ' PID: ' + $p.Id}} -AutoSize
} | Sort-Object PID | Out-GridView

またそれは実行するために高度を必要としません。

186
n0rd

netstat -aon | findstr :80というコマンドを入力します。

ポート80を使用するすべてのプロセスが表示されます。右側の列のpid(プロセスID)に注目してください。

ポートを解放したい場合は、タスクマネージャに行き、pidでソートしてそれらのプロセスを閉じてください。

- aは、すべての接続と待機ポートを表示します。

- oは、各接続に関連付けられている所有プロセスIDを表示します。

- nは、アドレスとポート番号を数値で表示します。

176
Technotronic

あなたが本当に派手になりたい場合は、sysinternalsから TCPView をダウンロードしてください。

TCPViewは、ローカルアドレスとリモートアドレス、およびTCP接続の状態など、システム上のすべてのTCPおよびUDPエンドポイントの詳細な一覧を表示するWindowsプログラムです。 Windows Server 2008、Vista、およびXPでは、TCPViewはエンドポイントを所有するプロセスの名前も報告します。 TCPViewは、Windowsに同梱されているNetstatプログラムのより有益で便利に提示されたサブセットを提供します。

13
Manu

この気の利いたフリーウェアユーティリティを使用してください:

CurrPortsは、ローカルコンピュータで現在開かれているすべてのTCP/IPおよびUDPポートのリストを表示するネットワーク監視ソフトウェアです。

http://www.nirsoft.net/utils/cports.html

enter image description here

12
Marcelo Mason

[Command Prompt]または[Power Shell]を右クリックし、[管理者として実行]をクリックします(Windowsの場合はXP通常どおりに実行できます)。次のコマンドは、使用中のネットワークトラフィックを示します。ポートレベルで:

Netstat -a -n -o

または

Netstat -a -n -o>%USERPROFILE%\ ports.txt

(あなたが望む情報を検索することができるテキストエディタでポートとプロセスリストを開くために)

次に、netstatの出力に表示されているPIDを使用して、Windowsタスクマネージャ(taskmgr.exe)でフォローアップするか、または前の手順のポートを使用している特定のPIDを使用してスクリプトを実行します。その後、問題のポートに対応する特定のPIDを指定して「tasklist」コマンドを使用できます。例:

tasklist/svc/FI "PID eq 1348"

http://www.techrepublic.com/blog/the-enterprise-cloud/see-what-process-is-using-a-tcp-port-in-windows-server-2008 /

9
Quang Trinh

netstat utilを使う

3
denisenkom