當前位置:首頁 » 城管服務 » 在線代理伺服器

在線代理伺服器

發布時間: 2020-11-21 22:11:40

1. 什麼是代理服務器,為什麼叫做「代理「好處是什麼,如何在C#程序中鏈接到代理伺服器

代理程序的種類非常多,根據協議不同可以分成HTTP代理服務程序、FTP代理服務程序等,而運行代理服務程序的伺服器也就相應稱為HTTP代理伺服器和FTP代理伺服器。本文將介紹的Web代理服務程序代理的是HTTP協議。
一、網路代理程序的優點

代理服務所起的是一個橋的作用,它是網路信息的中轉站。在網路中應用代理服務一般是基於以下幾個原因:

(1)充分利用IP地址資源。在區域網中,一般對外的IP地址都是非常有限的,為了保證區域網內部的主機都能夠訪問互聯網資源,通過網路代理就可以實現。

(2)能夠保證網路安全。網路代理可以充當內部網和互聯網之間的防火牆,通過過濾IP地址,限定某些IP地址對外部資源的訪問。

(3)能夠有效地隱藏自己的IP地址和主機名。由於所有對外網的請求都是通過代理伺服器實現的,所以目的主機只能知道代理伺服器的IP地址。

(4)提高網路速度。通常代理伺服器都設有一個較大的硬碟緩沖區,它存儲界數據,當你再訪問相同的數據時,則可以直接從緩沖區中取出信息,從而提高訪問速度。

二、網路代理的類型及實現原理

網路代理服務根據工作層次,一般可分為應用層代理、傳輸層代理和SOCKS代理。應用層代理是工作在TCP/IP參考模型的應用層之上,它支持對應用
層協議(如HTTP、FTP)的代理。它提供的控制最多,但是不靈活,必須要有相應的協議支持。如果協議不支持代理(如SMTP和POP),那就只能在應
用層以下代理,也即傳輸層代理。傳輸層代理直接與TCP層交互,更加靈活。要求代理伺服器具有部分真正伺服器的功能:監聽特定TCP或UDP埠,接收客
戶端的請求同時向客戶端發出相應的響應。另一種代理需要改變客戶端的IP棧,即SOCKS代理。它是可用的最強大、最靈活的代理標准協議。SOCK V4
允許代理伺服器內部的客戶端完全地連接到外部的伺服器,SOCK V5增加了對客戶端的授權和認證,因此它是一種安全性較高的代理。本節後面介紹的代理是
一種應用層上面的代理,所代理的協議是HTTP,也就是經常見到的Web代理。

正如上面所說,網路代理就是一個連接客戶端(需要代理的計算機)和伺服器端(提供訪問資源的伺服器)的橋。要實現這種橋的功能,網路代理就必須滿足下列條件,其實也是代理服務的運行的流程:

(1)接收並解析客戶端的請求。

(2)創建到伺服器的新連接,並轉發客戶端的請求信息。

(3)接收伺服器反饋的信息。

(4)解釋伺服器的響應並將該響應傳回給客戶端。

網路代理雖然有很多優點,但由於使用代理後,自己對網路的所有請求都是通過代理伺服器這個中間人來實現的,所以有可能碰上存有惡意的人監聽你的輸入的內容。同樣,如果選擇的代理伺服器的帶寬比較小,使用代理還會降低網速。

總而言之,使用代理有利有弊,使用者要根據自身的情況來決定。但無論如何,選擇一個好的代理伺服器是非常重要的。

三、C#實現Web代理服務程序

經過了上面的介紹,我想大家對代理服務應該有了一個基本的認識,下面就讓我們通過一個實例來深入體會一下如何用C#實現Web代理服務。Web代理服務的功能順序是這樣的:

(1)偵聽埠,等待客戶端瀏覽器發送來的Web請求信息。

(2)接收到客戶端Web請求信息後,解析出目標Web伺服器的地址,並創建一個Socket實例,並以此實例連接Web伺服器上。

(3)通過創建的Socket傳送客戶端的Web請求數據包到Web伺服器的80埠。

(4)接收Web伺服器返回的頁面數據。

(5)把接收來的數據傳送到客戶端,從而實現Web代理。

客戶端對某個Web地址的瀏覽,可能要傳送很多的Web請求信息(比如網頁中的圖像、Flash等),為了更快更准確地處理這些信息,Web代理服務
程序通常採用多線程來處理每一個Web請求。細心的讀者可能會發現,處理每一個客戶端的Web請求信息,代理伺服器軟體都要使用二個Socket,一個是
用來接收/傳送客戶機的信息,一個是和Web伺服器進行交流。為了區分這二個Socket,我們把和伺服器對話的稱為「服務Socket」,和客戶端機器
對話的稱為「客戶Socket」。

下面就開始Web代理服務程序的編寫工作。這個實例包含三個部分內容:

1.創建一個Web代理類。
2.Web代理服務的類的實例化。
3.如何通過這個Web代理類的實例實現Web代理服務。

(一)創建一個Web代理類

具體操作步驟如下:

1.啟動Visual Studio.Net,依次選擇「文件」、「新建」、「項目」菜單後,在彈出「新建項目」對話框中將「項目類型」設置為
「Visual C#項目」,將「模板」設置為「Windows應用程序」,在「名稱」文本框中輸入「WebProxy」,在「位置」文本框中輸入
「E:VS.NET項目」,然後單擊「確定」按鈕,這樣項目便建立好了。
2.依次選擇菜單「項目」、「添加類」,將彈出「添加新項」對話框。
3.將「模板」設置為「類」。
4.在「名稱」文本框中輸入「Proxy」,單擊「打開」按鈕
5.在「解決方案資源管理器」窗口中,雙擊Proxy.cs文件,進入Proxy.cs文件的編輯界
6.在Proxy.cs源文件的開頭,添加下列代碼,下列代碼是導入Proxy.cs中要使用到的命名空間:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;

7.用下列構造函數替代默認的構造函數。下面的代碼是在Proxy類中創建一個構造函數。Proxy類只有一個構造函數,並且這個構造函數只有一個參數,這個參數是Socket對象,它主要用來和客戶端進行數據交換,是一個「客戶Socket」:

public Proxy(Socket socket)
{
//
// TODO: 在此處添加構造函數邏輯
//
this.clientSocket = socket ;
}

8.在定義Proxy類代碼區中加入下列代碼,下列代碼是定義Proxy類中的使用的一些變數,這些變數主要是在後面的定義Run方法中使用。

Socket clientSocket;
Byte[] read = new byte[1024];
//定義一個空間,存儲來自客戶端請求數據包
Byte [] Buffer = null;
Encoding ASCII = Encoding.ASCII;
//設定編碼
Byte[] RecvBytes = new Byte[4096];
//定義一個空間,存儲Web伺服器返回的數據

9.創建Proxy類中的Run方法。Run方法是Proxy類中唯一的方法。其功能是從客戶端接收HTTP請求,並傳送到Web伺服器,然後從
Web伺服器接收反饋來的數據,並傳送到客戶端。為了實現這二個不同方面的數據傳送,Run方法中是通過兩個Socket實例來實現的。在編寫Run方法
的時候,要注意下面兩點:

(1)由於HTTP建立於TCP協議之上,所以創建的Socket實例應該使用TCP協議。下面代碼是創建可以傳送HTTP請求命令到Web伺服器和接收來自Web伺服器反饋來信息的Socket實例:

Socket IPsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

(2)另外一個Socket是在代理服務程序偵聽埠號,接收連接請求時候得到的,所以應該以此Socket為參數,利用Proxy類中的構造函數來創建一個Proxy實例。此Socket實現從客戶端接收HTTP請求信息,並傳送數據到客戶端。

Socket創建和使用是實現Web代理軟體的關鍵。在構造函數代碼後面,輸入下列代碼:
public void Run()
{
string clientmessage = " " ;
//存放來自客戶端的HTTP請求字元串
string URL = " " ;
//存放解析出地址請求信息
int bytes = ReadMessage(read, ref clientSocket, ref clientmessage);
if (bytes == 0)
{
return ;
}
int index1 = clientmessage.IndexOf(' ');
int index2 = clientmessage.IndexOf(' ', index1 + 1);
if ((index1 == -1) || (index2 == -1))
{
throw new IOException();
}
string part1 = clientmessage.Substring(index1 + 1, index2 - index1);
int index3 = part1.IndexOf('/', index1 + 8);
int index4 = part1.IndexOf(' ', index1 + 8);
int index5 = index4 - index3;
URL = part1.Substring(index1 + 4, (part1.Length - index5) - 8);
try
{
IPHostEntry IPHost = Dns.Resolve(URL);
Console.WriteLine("遠程主機名: " + IPHost.HostName);
string [] aliases = IPHost.Aliases;
IPAddress[] address = IPHost.AddressList;
Console.WriteLine("Web伺服器IP地址:" + address[0]);
//解析出要訪問的伺服器地址
IPEndPoint ipEndpoint = new IPEndPoint(address[0], 80);
Socket IPsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//創建連接Web伺服器端的Socket對象
IPsocket.Connect(ipEndpoint);
//Socket連Web接伺服器
if (IPsocket.Connected)
Console.WriteLine("Socket 正確連接!");
string GET = clientmessage;
Byte[] ByteGet = ASCII.GetBytes(GET);
IPsocket.Send(ByteGet, ByteGet.Length, 0);
//代理訪問軟體對伺服器端傳送HTTP請求命令
Int32 rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0);
//代理訪問軟體接收來自Web伺服器端的反饋信息
Console.WriteLine("接收位元組數:" + rBytes.ToString());
String strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
while (rBytes > 0)
{
rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
}
IPsocket.Shutdown(SocketShutdown.Both);
IPsocket.Close();
SendMessage(clientSocket, strRetPage);
//代理服務軟體往客戶端傳送接收到的信息
}
catch (Exception exc2)

}

//接收客戶端的HTTP請求數據
private int ReadMessage(byte [] ByteArray, ref Socket s, ref String clientmessage)
{
int bytes = s.Receive(ByteArray, 1024, 0);
string messagefromclient = Encoding.ASCII.GetString(ByteArray);
clientmessage = (String)messagefromclient;
return bytes;
}

//傳送從Web伺服器反饋的數據到客戶端
private void SendMessage(Socket s, string message)
{
Buffer = new Byte[message.Length + 1];
int length = ASCII.GetBytes(message, 0, message.Length, Buffer, 0);
Console.WriteLine("傳送位元組數:" + length.ToString());
s.Send(Buffer, length, 0);
}

至此,Proxy類的定義過程就完成了。

(二)利用Proxy類,實現Web代理

下面是利用Proxy類實現Web代理程序的具體實現步驟,Proxy類被定義在命名空間WebProxy中:

1.在Visual Studio .Net的代碼編輯器中打開Class1.cs文件,進入Class1.cs的代碼編輯界面。

2.在Class1.cs源文件的開頭導入下列命名空間:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
using System.Threading;
using WebProxy;

3.在Main函數中添加下列代碼,下列代碼是利用Proxy類,來實現Web代理程序:

const int port = 8000 ;
//定義埠號
TcpListener tcplistener = new TcpListener(port);
Console.WriteLine("偵聽埠號: " + port.ToString());
tcplistener.Start();
//偵聽埠號
while (true)
{
Socket socket = tcplistener.AcceptSocket();
//並獲取傳送和接收數據的Scoket實例
Proxy proxy = new Proxy(socket);
//Proxy類實例化
Thread thread = new Thread(new ThreadStart(proxy.Run));
//創建線程
thread.Start();
//啟動線程
}

保存上面的所有步驟,這樣一個簡單Web代理程序就算是完成了。此Web代理程序偵聽的是8000埠號。

(三)測試Web代碼程序

Web代理程序要通過二台計算機才能夠實現,其中的一台計算機運行Web代理程序充當Web代理伺服器,另外一台計算機充當客戶機,通過Web代理伺服器來瀏覽網頁。在確定Web代理軟體運行後,需要對客戶機進行進行必要的設置:

1.打開IE瀏覽器。

2.依次選擇「工具」、「Internet選項」,在彈出的「Internet選項」對話框中選擇「連接」頁面,單擊其中的「區域網設置」按鈕,在彈
出的「區域網(LAN)設置」對話框,選擇「為LAN使用代理伺服器(X),(這些設置不會應用於撥號和VPN連接)」多選框,並在其中的「地址」文本框
中輸入代理伺服器的IP地址,比如「10.138.198.213」,在「埠」文本框中輸入「8000」。

此時客戶端的設置就完成了。在確定IP地址為「10.138.198.213」的這台計算機已經運行上面介紹的Web代理程序後,打開客戶端的IE瀏覽器,並輸入要瀏覽的網址,就可以通過Web代理伺服器來瀏覽網頁了。

四、總結

至此一個簡單的Web代理服務軟體就算基本完成了。雖然代理服務的實現原理相對簡單,但具體實現還是很繁瑣的。網路代理是一個內容豐富,實現復雜的論
題,本節介紹的代理服務軟體,無論在實現的協議種類,還是實現的功能,都只能算很小的一部分。希望各位能夠通過本文的介紹,結合其他相關的知識,創造出功
能更強大、安全性更高,使用更穩定的網路代理服務程序來。

2. 如何設置HTTP代理伺服器

網頁代理:打開IE,單擊菜單欄中"工具"-->Internet選項-->"連接"選項-->然後找到"區域網設置"-->"代理伺服器回"勾起來,然後填入代答理伺服器的IP地址和埠.把下面那個"對於本地地址不使用代理伺服器"勾起來.這樣就好了.
QQ代理:打開QQ,單擊"設置"-->網路設置,在類型中選擇"HTTP代理"-->然後填入IP地址和埠.單擊"測試".測試成功就行了.

代理伺服器,用代理伺服器 CCProxy v6.3.3和SYGATE軟體.

3. 網頁中顯示代理伺服器鏈接失敗怎麼回事

連接失敗,請檢查下原因。根據具體的提示來解決問題。也可以進一步如下操作:查看一下IE是否配置了代理伺服器。 IE--工具--INTERNET選項--連接--區域網設置,看看代理伺服器有沒有打勾,有的話去掉。

4. 有沒有干凈的在線代理伺服器

在線代理不穩定,容易掉線,經常失效。換別的吧,藉助工具就可以上外網了,這里版有,樓主可以發任意含有主權題,內容的郵#件(主題、內容隨便寫點東西,不要空白)至後面的油箱就行,
[email protected]

自動茴復,免費翻強代理軟體最新版下載地址,因各地網路情況不一樣,軟體哪個好用就用哪一個。(如果沒收到回復,那是您的郵箱發到垃圾箱里了,這樣系統是不會自動回復的,請換其它郵箱再次獲取軟體),也可留由箱地址,直接給你發送到箱。電腦版軟體不用安裝設置,手機安卓版軟體需要安裝到手機上才能用,都是永久免費的,簡單好用。我用過三年了,一直穩定好用。

5. 網頁打不開,錯誤信息是,代理伺服器連接失敗

可能出現了以下情況:

  1. 感染了病毒所致 ;

  2. 與設置代理伺服器有關;

  3. DNS伺服器解釋出錯;

  4. 系統文件丟失導致IE不能正常啟動。

6. 常見的Web伺服器有哪些,伺服器設置,代理伺服器,站長在線

Web代理伺服器—CCProxy
Web代理伺服器CCProxy於2000年6月問世,是國內最流行的、下載量最大的代理伺服器。主要用於區域網內共享上網和上網行為監控的最好的在線代理伺服器。
Web代理伺服器可以支持ADSL撥號、寬頻上網、專線接入、ISDN、衛星上網、代理伺服器上網、3G上網等目前已知的幾乎所有上網方式。只要裝有CCProxy的IP代理伺服器能上網,並且其他客戶端能夠連接到這台伺服器,通過設置代理伺服器密碼就可以通過區域網代理伺服器的代理功能實現在線代理上網。

7. 我的瀏覽器啟用了代理伺服器,怎麼關閉

1、打開IE瀏覽器,點擊右上角圖標,點擊「工具」,選擇下拉中的「Internet選項」。

2、在彈出的Internet選項窗口中,點擊「連接」,選擇「區域網設置」。

3、在彈出的「區域網LAN設置」中,勾去「為LAN使用代理伺服器」,點擊確定。

通過上述步驟,我們就可以取消掉之前的設置了,不管使用哪個瀏覽器設置的芝麻代理伺服器,都可以通過IE瀏覽器「設置」下的「Internet選項」來解決問題。

8. 為什麼關閉代理伺服器就可以打開網頁

所謂代理伺服器,就是把你本來應該直接對外聯網的服務,改成了先連接到代理伺服器,然後代理伺服器再轉發你的連接連接出去。這樣一來,你的電腦能否上網就完全和這個代理伺服器有關,如果代理伺服器的80/443埠轉發內容故障或者做了限制,你就無法打開網頁,但其他埠轉發正常,你的其他軟體聯網也就正常。還有一種可能是域名DNS解析,如果代理伺服器的DNS解析問題,你要打開的網站的域名沒有成功被解析,那代理伺服器不知道這個域名的解析情況也就沒法把這個網頁內容轉給你。

9. 使用代理伺服器上網如何觀看在線視頻

你這種情況應該是使用了全局代理模式上網吧?你可以使用PAC模式啊,你去下個Shadowsocks試試,這個可以區分流量

10. 為什麼:使用代理伺服器後,無法打開網頁,提示:錯誤,你所請求的網址(URL)無法獲取

有可能你使用的是肉雞或者非正規的代理伺服器
建議使用正規的代理伺服器
只是代理IP用途可以網路一下深度代理網站

熱點內容
影視轉載限制分鍾 發布:2024-08-19 09:13:14 瀏覽:319
韓國電影傷口上紋身找心裡輔導 發布:2024-08-19 09:07:27 瀏覽:156
韓國電影集合3小時 發布:2024-08-19 08:36:11 瀏覽:783
有母乳場景的電影 發布:2024-08-19 08:32:55 瀏覽:451
我准備再看一場電影英語 發布:2024-08-19 08:14:08 瀏覽:996
奧迪a8電影叫什麼三個女救人 發布:2024-08-19 07:56:14 瀏覽:513
邱淑芬風月片全部 發布:2024-08-19 07:53:22 瀏覽:341
善良媽媽的朋友李采潭 發布:2024-08-19 07:33:09 瀏覽:760
哪裡還可以看查理九世 發布:2024-08-19 07:29:07 瀏覽:143
看電影需要多少幀數 發布:2024-08-19 07:23:14 瀏覽:121