Có cách nào trong C++ trên cửa sổ để theo dõi chương trình và chuyển hướng bất kỳ yêu cầu gửi đi nào mà nó thực hiện trên một cổng cụ thể không? Tôi có một proxy http C++ http đơn giản và muốn nó có thể tự động chuyển hướng tất cả các yêu cầu trình duyệt trên cổng 80 thông qua chính nó.C++ chuyển hướng kết nối gửi đi
Trả lời
Cách đơn giản để thực hiện là tạo một móc nối nhân Windows để bẫy các yêu cầu ổ cắm và định tuyến lại chúng tới proxy của bạn.
Một số tài liệu hữu ích về vấn đề này là:
http://www.internals.com/articles/apispy/apispy.htm
Nếu bạn đang sử dụng Windows Vista hoặc tốt hơn, hãy xem xét Windows Filtering Platform (WFP):
http://www.microsoft.com/whdc/device/network/wfp.mspx
Cũng xem xét tìm kiếm tại Detours (thương mại) và EasyHook (miễn phí). Chúng đơn giản hóa đáng kể quá trình viết móc và chuyển hướng các cuộc gọi API (cả Win32 và Ứng dụng).
Chương trình sẽ phải chạy với quyền quản trị trong chế độ lõi của hệ điều hành máy chủ.
Mặc dù tôi không có nhiều kinh nghiệm về các móc khóa cửa sổ, trong BSD và Linux, nó không cần thiết để cài đặt mô-đun hạt nhân ghi đè lên hệ thống. .
Nếu mọi người sử dụng Linux, công việc của chúng tôi sẽ dễ dàng hơn rất nhiều. –
Nếu bạn ngụ ý [bất kỳ cổng đích] nào đến [một cổng] thì bạn sẽ phải dựa vào các trình điều khiển đặc biệt. Vấn đề với các cửa sổ là không có khả năng tự nhiên chặn các gói [drop]. Ví dụ một giải pháp phổ biến là winpcap. Tuy nhiên, trong khi bạn có thể theo dõi lưu lượng truy cập, bạn không thể ngừng lưu lượng truy cập hoặc sửa đổi nó một cách hữu ích.
Trên cửa sổ, giải pháp duy nhất tôi đã thấy sẽ là sử dụng một số open TUN/TAP adapter. Với điều đó, bạn sẽ có thể sửa đổi mọi gói tin rời khỏi hệ thống của bạn.
Nếu bạn biết trước cổng đích bạn sẽ sử dụng thì nó trở nên khá đơn giản. Đơn giản chỉ cần viết một chương trình socket C++ passthrough mà sẽ chỉ thay đổi cổng đích.
Nếu bạn muốn chuyển hướng các yêu cầu của trình duyệt thì bạn có thể chỉ cần chỉnh sửa cài đặt trong trình duyệt của mình.
- 1. Chuyển hướng kết nối TCP
- 2. Kết nối URL không theo dõi chuyển hướng
- 3. Chuyển hướng 301: Tại sao kết nối lại gần?
- 4. Chuyển hướng kết nối TCP MySQL tới proxy
- 5. Gửi thông tin có chuyển hướng HTTP mà trình duyệt sẽ gửi đến vị trí được chuyển hướng?
- 6. Kết nối C# với Oracle
- 7. Android: bắt đầu chuyển hướng trong chế độ đi bộ
- 8. C++ Đầu ra chuyển hướng
- 9. Đầu ra chương trình C phải đi tới bảng điều khiển, nhưng không được chuyển hướng
- 10. Hướng dẫn cho đi bộ AST ASTR trong C#?
- 11. Laravel gửi máy chủ trên 10 chuyển hướng?
- 12. Làm thế nào để giả lập một kết nối Socket đi?
- 13. String nối đi chức năng
- 14. Thiết lập kết nối P2P trong C#
- 15. Kết nối với máy chủ cục bộ có đi ra ngoài mạng không?
- 16. Chuyển hướng tập tin C++
- 17. Tránh SSL "Bạn sắp được chuyển hướng đến kết nối không an toàn". tin nhắn
- 18. Java ~ Gửi enum qua kết nối ổ cắm
- 19. Chuyển hướng tùy chỉnh sau khi gửi biểu mẫu
- 20. Rails một email gửi đi?
- 21. Gửi chuyển hướng đến các cổng cụ thể
- 22. Gửi chuyển hướng từ bên trong phương thức nghe ajax
- 23. Socket.io - Hướng dẫn kết nối lại sau khi ngắt kết nối phía máy khách
- 24. Giữ kết nối http còn trong C#?
- 25. Kết nối WiFi qua android
- 26. Đi: Nối nếu duy nhất
- 27. Gửi chuyển hướng từ dịch vụ JAX-RS
- 28. Ngăn chuyển hướng biểu mẫu HOẶC làm mới khi gửi?
- 29. Gửi chuyển hướng đến đường dẫn tương đối trong JSP?
- 30. Gửi cookie của trình duyệt trong khi chuyển hướng 302
bạn không chỉ định hệ điều hành - dễ dàng hơn trên các biến thể Unix. –
Cửa sổ xin lỗi. trên linux nó là một iptables oneliner lol. –
Các chương trình thông thường không thể can thiệp vào các chương trình khác. Đó sẽ là một vi phạm an ninh. Bạn cần đặt trình duyệt của mình (hoặc ứng dụng khác) để sử dụng proxy một cách rõ ràng. –