Pertanyaan ini sudah ada jawabannya di sini:
Bagaimana cara mengetahui siapa yang mendengarkan port 80 di Windows?
Jangan menyarankan untuk menggunakan
netstat -aon | findstr :80
karena melaporkan PID dari NT Kernel & System
yang merupakan informasi yang tidak berguna.
Saya perlu tahu nama komponen yang tepat untuk mengendalikannya.
windows
networking
Dims
sumber
sumber
http.sys
digunakan, Anda mungkin tidak memiliki kesempatan untuk mengetahuinya.http.sys
? Itu adalah bagian dari IIS?http.sys
adalah Mesin HTTP Mode Kernel Windows. Ini dapat digunakan oleh banyak program pada saat bersamaan, dengan masing-masing mendengarkan permintaan ke "subdirektori". Untuk .NET, ada HttpListener kelas. IIS juga menggunakanhttp.sys
.Jawaban:
Baiklah, mari kita buat jawaban.
Apa yang Anda lihat kemungkinan besar merupakan hasil dari penggunaan program
http.sys
Mesin HTTP Mode Kernel Windows diperkenalkan pada Windows Server 2003 (dan XP?). Ini memungkinkan pengembang untuk menghindari batasan bahwa port mendengarkan hanya dapat dilayani oleh satu program pada satu waktu. Denganhttp.sys
, suatu program mendaftarkan ruang nama, mis.http://192.168.1.2:80/helloworld
. Program sekarang menerima semua permintaan yang dimulai dengan namespace terdaftar. Pada saat yang sama, program lain dapat mendengarkanhttp://192.168.1.200:80/helloworld
.Efek samping lain adalah bahwa bahkan program "non-root" dapat mendengarkan pada port 80, dengan ketentuan bahwa pengaturan satu kali telah selesai.
Secara alami, Microsoft tidak mengembangkan ini karena semuanya menyenangkan dan permainan. Layanan Informasi Internet (IIS) digunakan
http.sys
untuk mendengarkan. Jadi ini kemungkinan kandidat dalam kasus Anda.Jika saat ini tidak ada program yang mendaftarkan ruang nama,
http.sys
berhenti mendengarkan.netsh http show servicestate
harus dapat menghitung semua ruang nama aktif.sumber
http.sys
?Kamu bisa mencoba TcpView , tetapi jika itu sebenarnya di kernel (seperti di - soket dibuka oleh driver), maka benar-benar tidak ada cara untuk mengatakan apa yang sebenarnya mengontrol soket. Itu bahkan jika Anda menggunakan sesuatu seperti ProcMon untuk melakukan penelusuran boot dan menangkap momen yang tepat dari soket yang terikat ke tcp / 80. Yang Anda butuhkan adalah variasi ProcMon yang juga akan menangkap jejak tumpukan untuk setiap acara dan saya belum melihat alat seperti ini.
Tapi coba TcpView dulu. Kemungkinannya adalah itu sebenarnya layanan ruang pengguna yang Anda cari dan bukan komponen kernel.
sumber
TcpView
memperlihatkan daftar yang sangat panjang dengan beberapa IP terwakili dalam format IPv6. Tidak ada cara untuk menangkap yang spesifik.