Tôi muốn lấy danh sách các dịch vụ cửa sổ và các cổng của chúng trong C#. Tôi có thể nhận tất cả các dịch vụ cửa sổ bằng cách sử dụng ServiceController
nhưng tôi không thể nhận được các cổng của các dịch vụ này.Làm cách nào để mở các cổng do Dịch vụ Windows mở?
Trả lời
Vui lòng kiểm tra this question on stackoverlow. Nó không chính xác giống như bạn đang hỏi, nhưng nó trỏ đến một hàm hữu ích được gọi là GetExtendedTcpTable available through PInvoke, có thể làm những gì bạn cần. Ngoài ra, hãy kiểm tra this one.
Câu trả lời cho các câu hỏi tương tự luôn đề xuất sử dụng Iphlpapi nhưng không rõ ràng bạn sẽ nhận được RpcSs (tên dịch vụ) trong bản sao netstat -ban này như thế nào: TCP 0.0.0.0:135 0.0.0.0:0 NGHE RpcSs [svchost.exe]
Hoặc Schedule ở đây:
TCP [::]: 49.154 [::]: 0 NGHE Schedule [svchost.exe]
tôi nhìn cho giải pháp này và không vây d bất cứ điều gì (-easy). Netstat gọi vào một số chức năng không có giấy tờ trong Iphlpapi nhưng không rõ liệu nó có tên dịch vụ từ Iphlpapi hay bằng cách nào đó sử dụng pid từ Iphlpapi và sử dụng cái gì khác để lấy tên dịch vụ. Tôi không thực sự bị cám dỗ dành thời gian với một trình gỡ lỗi để trả lời câu hỏi này vì ..:
Tuy nhiên, lý tưởng nhất là không muốn sử dụng cách tiếp cận kiểu bỏ phiếu từ C#. Sẽ thích hợp hơn khi sử dụng ETW. Tôi nghĩ rằng việc thiếu các ví dụ về việc sử dụng nó từ C# là vì có một số chi phí để bắt đầu với nó và các ví dụ xung quanh có thể là cụ thể đối với các kiểu truy tìm/theo dõi khác.
Tóm tắt: Nếu bạn thiếu thời gian để thực hiện việc này, chỉ cần lưu đầu ra netstat có vẻ là "giải pháp". Lý tưởng nhất là tôi sẽ thích tìm một đơn giản để sử dụng C# ví dụ để theo dõi bất kỳ kết nối mạng và tìm ra những dịch vụ hoặc quá trình xử lý/khởi xướng chúng cùng với những thay đổi tường lửa có thể. Tôi tin rằng làm cả hai là có thể với ETW nhưng đối với nhu cầu hiện tại của tôi khó khăn của nó để biện minh cho số lượng không rõ thời gian cần thiết để có được rằng làm việc. Tôi có ít nhất đã tìm ra rằng "nhà cung cấp truy vấn logman" liệt kê các nhà cung cấp, sau đó bạn cần phải làm điều gì đó để cho phép nhà cung cấp (và trình điều khiển hỗ trợ truy tìm trong một số trường hợp như chụp gói). Có một dự án C# để sử dụng ETW xung quanh. Nhưng nó không phải là rõ ràng bao nhiêu nỗ lực nó sẽ được để tái sản xuất netstat với ETW.
Sau rất nhiều tìm kiếm xung quanh, tôi thấy rằng không có giấy tờ "OwningModuleInfo" trong cấu trúc MIB_TCPROW_OWNER_MODULE.
Sau đó tìm kiếm mà tôi tìm thấy nhận xét này:
Weird issue regarding GetOwnerModuleFromTcpEntry when targeting x64
"Tôi đã đi đến kết luận rằng mục đầu tiên trong mảng là chỉ số của dịch vụ trong danh sách các dịch vụ đang chạy, .. "
Vì vậy, câu trả lời cho câu hỏi sau đó sẽ là sử dụng để nhận thông tin tên mà netstat -b hiển thị (tên dịch vụ và địa chỉ + cổng), lọc cho dịch vụ bạn muốn. Tôi đã tìm thấy thư viện https://github.com/Loriowar/IpHlpApidotnet lib này có nhiều mã liên quan đã được thiết lập ngoại trừ tính năng này.
liên kết hữu ích khác:
Marshalling Struct with Array of Struct Member
https://msdn.microsoft.com/en-us/library/windows/desktop/aa366911(v=vs.85).aspx
- 1. Mở rộng các Dịch vụ Windows
- 2. Khả năng mở rộng dịch vụ Azure
- 3. Cổng mở trong Ubuntu
- 4. Làm cách nào để GUI chờ dịch vụ windows?
- 5. lệnh cho mở cổng nối tiếp trong Windows 7
- 6. Tạo một Dịch vụ Windows để mở một chương trình- Delphi
- 7. Đường ray + MySQL + Giao dịch + Khóa, làm cách nào để ngăn chặn mở giao dịch khỏi mở khóa bảng?
- 8. Cách theo dõi các dịch vụ Windows
- 9. Ngôn ngữ nào để viết các mở rộng vỏ windows
- 10. mở cổng TCP bằng Python
- 11. Làm cách nào để ghi lại các sự kiện đăng nhập, đăng xuất, khóa và mở khóa Windows một cách đáng tin cậy từ một dịch vụ?
- 12. Làm thế nào để loại bỏ phần mở rộng ".svc" trong dịch vụ RESTful WCF?
- 13. Làm cách nào để mở tệp hx?
- 14. Android làm cách nào để mở tệp mở rộng .doc?
- 15. clojure swank server mở cổng công cộng?
- 16. Điều tra dịch vụ Windows nào đang nghe IP nào và cổng
- 17. Tôi làm cách nào để mở khóa khóa FileStream?
- 18. Mở tài liệu Microsoft Word trong dịch vụ Windows có vẻ như treo
- 19. Cách mở cổng trên tường lửa của Windows qua tệp hàng loạt
- 20. Làm cách nào để mở rộng NSArray?
- 21. Làm cách nào để liên kết dịch vụ web với một cổng thủy tinh cụ thể?
- 22. Cách xác định xem một cổng có được mở trên máy chủ Windows không?
- 23. Mở cổng HTTP trên Amazon EC2
- 24. Dịch vụ WCF và Dịch vụ Windows
- 25. Có cách nào tốt để mở rộng dịch vụ WCF bằng cách sử dụng basicHttpBinding để cũng cho phép dịch vụ REST giao tiếp với JSON không?
- 26. Làm cách nào để mở rộng scala.swing?
- 27. Cách tạo dịch vụ Windows với các tham số?
- 28. Nhận số cổng cho tên dịch vụ?
- 29. Làm cách nào tôi có thể mở số cổng cụ thể trong hệ thống cửa sổ
- 30. Tôi làm cách nào để kiểm tra dịch vụ web?
làm bạn có nghĩa là các cổng TCP/UDP? –
Có, Cổng TCP/UDP –