การกำหนดกระบวนการที่ผูกพอร์ต (โดยไม่ฟัง) บน Windows
หากฉันต้องการทราบว่ากระบวนการใดกำลังฟังซ็อกเก็ตใดฉันสามารถใช้ netstat / TCPview และจะเห็นทันที อย่างไรก็ตามมันเป็นไปได้ที่จะผูกที่อยู่โดยไม่ต้องฟัง หากทำเสร็จแล้วจะไม่ปรากฏใน netstat / TCPview แต่จะบล็อกซ็อกเก็ต ตัวอย่าง Python: import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('0.0.0.0',12345)) ขณะนี้พอร์ตถูกผูกไว้และการพยายามเรียกใช้รหัสเดียวกันในอินสแตนซ์ที่สองในขณะที่พอร์ตแรกยังทำงานอยู่จะส่งผลให้เกิดข้อผิดพลาด อย่างไรก็ตามเว้นแต่คุณจะเริ่มฟังพอร์ตนั้นโดยใช้ s.listen(1) พอร์ตไม่ปรากฏขึ้นใน netstat / TCPview คำถามคือ: เป็นไปได้ไหมที่จะเห็นว่าพอร์ตใดถูกผูกไว้ (แต่ไม่ฟัง) และกระบวนการใดที่ผูกมัดพวกเขา พื้นหลังของเรื่องนี้ก็คือว่าผมได้มีช่วงการเคลื่อนย้าย 1976 พอร์ตที่ไม่สามารถจะผูกพันและฉันต้องการที่จะรู้ว่าสิ่งที่ทำให้เกิดนี้ ในระหว่างนี้ฉันพิจารณาจากการลองผิดลองถูกที่ Internet Connection Sharing กำลังบล็อกพอร์ตเหล่านั้น แต่ฉันก็ยังสงสัยเกี่ยวกับคำตอบของคำถามนี้ แก้ไข:เนื่องจากคำขอยอดนิยมนี่คือรหัสที่ฉันใช้ในการค้นหาพอร์ตเหล่านั้น: import time import socket for i in range(0,65536): try: …