2010-10-04 35 views
10

Theo nghiên cứu của tôi trong khi cố gắng giải quyết vấn đề this, hóa ra lớp .Net WebProxy không hỗ trợ Socks proxy - một chút phiền toái. Tôi cũng không thể tìm thấy bất kỳ mã hoặc thông tin nào giải thích cách triển khai Socks 4/5 hỗ trợ thông qua một lớp có thể dễ dàng được sử dụng với HttpWebRequest (thuộc tính Proxy, chính xác).Vớ Proxy cho HttpWebRequest

Tôi đã tìm thấy thông tin giới hạn qua google về cách tôi có thể thực hiện việc này. One suggestion liên quan đến việc thay đổi cài đặt proxy của trình khám phá internet - điều tôi không muốn làm.

Có ai biết bất kỳ điều gì có thể thực hiện công việc hoặc có bất kỳ đề xuất nào không? Bất kì sự trợ giúp nào đều được đánh giá cao.

Trả lời

3

Tôi đã thử rất nhiều thư viện .Net đã xác nhận hỗ trợ Socks4/5 nhưng thấy nhiều người trong số họ không hoạt động hoặc sẽ cố gắng kết nối với proxy mà tôi biết đang hoạt động.

Tôi đã kết thúc bằng cách sử dụng Chilkat Software's Sock/SSL component mà dường như làm việc tốt cho tôi ngay cả khi tôi phải tự xây dựng các yêu cầu HTTP thay vì sử dụng HttpWebRequest như tôi đã có thể thích.

  • Lưu ý cập nhật: Chilkat.Http (tương tự lớp HttpWebRequest) hiện đã hỗ trợ cho SOCKS proxy. Vì vậy, không dành thời gian cố gắng để mã yêu cầu HTTP của riêng bạn như tôi đã làm; chỉ sử dụng các thuộc tính Chilkat.Http.SocksHostname, Chilkat.Http.SocksPortChilkat.Http.SocksVersion.
+0

Chilkat hiện đã hỗ trợ SOCKS. 'Chilkat.Http.SocksVersion',' Chilkat.Http.SocksHostname', 'Chilkat.Http.SocksPort'. Việc định cấu hình các thuộc tính đó sẽ buộc các kết nối HTTP sử dụng SOCKS. Tham khảo API Chilkat: [link] (http://www.chilkatsoft.com/refdoc/csHttpRef.html) – user1111380

2

Thay đổi cài đặt proxy của IE sẽ không giúp ích gì cho bạn-- người đăng khác chỉ quan sát thấy nó hoạt động cho IE. Bởi vì .NET Framework không hỗ trợ SOCKS, bạn phải viết CERN-Proxy của riêng bạn thành SOCKS-Proxy converter, chẳng hạn .NET nói chuyện với proxy CERN (loại nó hỗ trợ) và mã của bạn chuyển đổi nó thành SOCKS cuộc gọi proxy.

FWIW, đây là điều tôi hiện đang tìm cách thêm vào FiddlerCore (www.fiddler2.com/core) vì tôi đã có gần như tất cả các mã. Điều duy nhất tôi thực sự cần là một proxy SOCKSv4a để kiểm tra.

+0

Các ý kiến ​​cho rằng đã cho tôi đến trang đó là thay đổi proxy của IE và sau đó sử dụng thuộc tính WebProxy.DefaultProxy - http://social.msdn.microsoft.com/Forums/en-US/ncl/thread/982bef6c-b9a4-4c0d-b7d5-0c64df9f610a. Tôi chỉ ngạc nhiên rằng tôi không thể tìm thấy bất kỳ lớp học/thư viện để thực hiện điều này một cách dễ dàng thông qua mã - nó có vẻ như một điều rõ ràng như vậy để muốn làm. Sẽ là tuyệt vời nếu bạn đã thực hiện nó - Tôi sẽ theo dõi dự án FiddlerCore. – JoeR

Các vấn đề liên quan