狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

穿透代理服務(wù)器編程

穿透代理服務(wù)器編程

更新時間:2024-04-08 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

田進(jìn)恩 allfresh@263.net


    關(guān)鍵詞:代理服務(wù)器、Socks4、Socks5、Http代理  

    在網(wǎng)絡(luò)程序設(shè)計過程中,我們經(jīng)常要與各種類型的代理服務(wù)器打交道,比如在企業(yè)內(nèi)部網(wǎng)通過代理去訪問Internet網(wǎng)上的服務(wù)器等等,一般代理服務(wù)器支持幾種常見的代理協(xié)議標(biāo)準(zhǔn),如Socks4,Socks5,Http代理,其中Socks5需要用戶驗證,代理相對復(fù)雜。我在查閱RFC文檔和相關(guān)資料后,特總結(jié)一些TCP協(xié)議穿透代理服務(wù)器的程序片斷,希望對大家有所幫助。

//使用到的結(jié)構(gòu)
struct sock4req1
{
char VN;
char CD;
unsigned short Port;
unsigned long IPAddr;
char other[1];
};

struct sock4ans1
{
char VN;
char CD;
};

struct sock5req1
{
char Ver;
char nMethods;
char Methods[255];
};

struct sock5ans1
{
char Ver;
char Method;
};

struct sock5req2
{
char Ver;
char Cmd;
char Rsv;
char Atyp;
char other[1];
};

struct sock5ans2
{
char Ver;
char Rep;
char Rsv;
char Atyp;
char other[1];
};

struct authreq
{
char Ver;
char Ulen;
char Name[255];
char PLen;
char Pass[255];
};

struct authans
{
char Ver;
char Status;
};

//通過Socks4方式代理
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )
{
m_sError = _T("不能連接到代理服務(wù)器!");
ClientSock.Close();
return FALSE;
}
char buff[100];
memset(buff,0,100);
struct sock4req1 *m_proxyreq;
m_proxyreq = (struct sock4req1 *)buff;
m_proxyreq->VN = 4;
m_proxyreq->CD = 1;
m_proxyreq->Port = ntohs(GetPort());
m_proxyreq->IPAddr = inet_addr(GetServerHostName());
ClientSock.Send(buff,9);
struct sock4ans1 *m_proxyans;
m_proxyans = (struct sock4ans1 *)buff;
memset(buff,0,100);
ClientSock.Receive(buff,100);
if(m_proxyans->VN != 0 || m_proxyans->CD != 90)
{
m_sError = _T("通過代理連接主站不成功!");
ClientSock.Close();
return FALSE;
}


  

//通過Socks5方式代理
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )
{
m_sError = _T("不能連接到代理服務(wù)器!");
ClientSock.Close();
return FALSE;
}
char buff[600];
struct sock5req1 *m_proxyreq1;
m_proxyreq1 = (struct sock5req1 *)buff;
m_proxyreq1->Ver = 5;
m_proxyreq1->nMethods = 2;
m_proxyreq1->Methods[0] = 0;
m_proxyreq1->Methods[1] = 2;
ClientSock.Send(buff,4);
struct sock5ans1 *m_proxyans1;
m_proxyans1 = (struct sock5ans1 *)buff;
memset(buff,0,600);
ClientSock.Receive(buff,600);
if(m_proxyans1->Ver != 5 || (m_proxyans1->Method!=0 && m_proxyans1->Method!=2))
{
m_sError = _T("通過代理連接主站不成功!");
ClientSock.Close();
return FALSE;
}
if(m_proxyans1->Method == 2)
{
int nUserLen = strlen(g_ProxyInfo.m_strProxyUser);
int nPassLen = strlen(g_ProxyInfo.m_strProxyPass);
struct authreq *m_authreq;
m_authreq = (struct authreq *)buff;
m_authreq->Ver = 1;
m_authreq->Ulen = nUserLen;
strcpy(m_authreq->Name,g_ProxyInfo.m_strProxyUser);
m_authreq->PLen = nPassLen;
strcpy(m_authreq->Pass,g_ProxyInfo.m_strProxyPass);
ClientSock.Send(buff,513);
struct authans *m_authans;
m_authans = (struct authans *)buff;
memset(buff,0,600);
ClientSock.Receive(buff,600);
if(m_authans->Ver != 1 || m_authans->Status != 0)
{
m_sError = _T("代理服務(wù)器用戶驗證不成功!");
ClientSock.Close();
return FALSE;
}
}
struct sock5req2 *m_proxyreq2;
m_proxyreq2 = (struct sock5req2 *)buff;
m_proxyreq2->Ver = 5;
m_proxyreq2->Cmd = 1;
m_proxyreq2->Rsv = 0;
m_proxyreq2->Atyp = 1;
unsigned long tmpLong = inet_addr(GetServerHostName());
unsigned short port = ntohs(GetPort());
memcpy(m_proxyreq2->other,&tmpLong,4);
memcpy(m_proxyreq2->other+4,&port,2);
ClientSock.Send(buff,sizeof(struct sock5req2)+5);
struct sock5ans2 *m_proxyans2;
memset(buff,0,600);
m_proxyans2 = (struct sock5ans2 *)buff;
ClientSock.Receive(buff,600);
if(m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0)
{
m_sError = _T("通過代理連接主站不成功!");
ClientSock.Close();
return FALSE;
}


  

//通過HTTP方式代理
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )
{
m_sError = _T("不能連接到代理服務(wù)器!");
ClientSock.Close();
return FALSE;
}
char buff[600];
sprintf( buff, "%s%s:%d%s","CONNECT ",GetServerHostName(),GetPort()," HTTP/1.1\r\nUser-Agent: MyApp/0.1\r\n\r\n");
ClientSock.Send(buff,strlen(buff)); //發(fā)送請求
memset(buff,0,600);
ClientSock.Receive(buff,600);
if(strstr(buff, "HTTP/1.0 200 Connection established") == NULL) //連接不成功
{
m_sError = _T("通過代理連接主站不成功!");
ClientSock.Close();
return FALSE;
}


    我們一般先與代理服務(wù)器連通,然后向代理服務(wù)器發(fā)送代理驗證的用戶名和密碼(如果需要,如Socks5代理),驗證成功后,再向代理服務(wù)器發(fā)送需要連接的目的地址和端口。以上代碼僅用于TCP連接,如果在內(nèi)部網(wǎng)偵聽或通過UDP協(xié)議發(fā)送信息,可查閱RFC1829等文檔資料。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
麻豆精品蜜桃视频网站| 亚洲综合清纯丝袜自拍| 亚洲影视在线观看| 激情欧美一区二区| 99re热这里只有精品免费视频| 在线免费高清一区二区三区| 久久亚洲不卡| 亚洲精品一线二线三线| 一区二区免费看| 国产一区二区三区在线观看免费| 欧美激情第10页| 色悠久久久久综合欧美99| 精品sm在线观看| 亚洲五月六月丁香激情| 床上的激情91.| 国产精品一区免费观看| 日韩一级黄色大片| 一区二区三区在线免费观看| 国产精品91xxx| 一区二区三区免费看| 日韩无一区二区| 亚洲老司机在线| 国产大陆亚洲精品国产| 一区二区三区视频在线播放| 欧美高清hd18日本| 亚洲欧美激情视频在线观看一区二区三区| 久久福利视频一区二区| 亚洲一二区在线| 678五月天丁香亚洲综合网| 亚洲男人的天堂av| 丁香天五香天堂综合| 亚洲一区二区伦理| 久久久亚洲午夜电影| 日本女人一区二区三区| 欧美片网站免费| 在线不卡一区二区| 亚洲国产精品久久不卡毛片| 99久久99久久综合| 欧美午夜宅男影院| 成人免费在线视频观看| 成人三级伦理片| 一本一道久久a久久精品| 久久久亚洲午夜电影| 日本不卡一区二区三区 | 中文字幕一区二区三中文字幕| 韩国三级中文字幕hd久久精品| 在线成人黄色| 337p日本欧洲亚洲大胆精品| 美国一区二区三区在线播放| 亚洲精品欧美精品| 久久蜜桃av一区精品变态类天堂 | 不卡欧美aaaaa| 欧美中文字幕一区二区三区| 久久久九九九九| 国产麻豆视频精品| 一本大道综合伊人精品热热| 亚洲丝袜制服诱惑| 91丨九色丨尤物| 欧美日韩大陆一区二区| 亚洲影院免费观看| 国产综合第一页| 日韩欧美在线网站| 美腿丝袜在线亚洲一区| 在线日韩中文| 久久精品免费在线观看| 免费黄网站欧美| 国产精品视区| 亚洲国产精品成人综合 | 欧美绝品在线观看成人午夜影视| 亚洲一区在线观看网站| 国模大胆一区二区三区| 亚洲精品在线观看视频| 国产剧情在线观看一区二区| 久久久蜜桃一区二区人| 一区二区三区日韩精品| 激情91久久| 久久精品在线观看| 成年人国产精品| 欧美一区二区三区在线| 蜜臀av一区二区在线免费观看| 国产亚洲高清视频| 亚洲婷婷综合色高清在线| a4yy欧美一区二区三区| 91精品国产综合久久久久| 久久精品国内一区二区三区| 色婷婷激情综合| 丝袜美腿亚洲一区二区图片| 亚洲欧美日韩专区| 亚洲一线二线三线久久久| 一本一本久久| 一区二区三区国产豹纹内裤在线| 激情欧美日韩| 国产精品白丝在线| 国产精品国码视频| 国产精品热久久久久夜色精品三区| 99精品一区二区三区| 精品国产99国产精品| 成人精品小蝌蚪| 精品理论电影在线观看 | 精品亚洲aⅴ乱码一区二区三区| 色一情一乱一乱一91av| 视频一区在线播放| 久久国产精品久久w女人spa| 亚洲一区二区三区国产| 国产精品普通话对白| 亚洲午夜激情网页| 午夜一区不卡| 调教+趴+乳夹+国产+精品| 男人天堂欧美日韩| 日韩中文字幕av电影| 日本韩国一区二区三区| 蜜臀av在线播放一区二区三区| 欧美午夜理伦三级在线观看| 久久草av在线| 在线播放/欧美激情| 国产精品亚洲一区二区三区妖精| 欧美一区二区精美| 成人激情电影免费在线观看| 精品久久一二三区| av一二三不卡影片| 亚洲国产精品黑人久久久| 精品二区久久| 一区二区三区蜜桃| 久久久福利视频| 狂野欧美性猛交blacked| 欧美精品第1页| 北条麻妃一区二区三区| 欧美激情一区不卡| 亚洲激情精品| 午夜精品在线视频一区| 欧美中文字幕久久| 国产一区二区不卡在线| 亚洲精品一区二区三区福利 | 久久99九九99精品| 欧美一级高清片| 欧美在线免费一级片| 亚洲色图欧美激情| 老司机久久99久久精品播放免费| 久久国产精品72免费观看| 日韩欧美国产一区在线观看| 欧美aa国产视频| 亚洲人成亚洲人成在线观看图片| 欧美一级视频| 国产在线精品一区二区夜色| 精品久久五月天| 激情婷婷亚洲| 午夜精彩视频在线观看不卡| 欧美日韩一级视频| www..com久久爱| 亚洲欧美另类图片小说| 91精品91久久久中77777| 国产精品一区在线观看乱码| 国产无一区二区| 国产精品久久久久毛片大屁完整版| 欧美96一区二区免费视频| 欧美成人女星排名| 亚洲午夜视频| 免费看日韩a级影片| 精品国产免费一区二区三区香蕉| 亚洲天堂偷拍| 美女久久久精品| 久久一区二区三区国产精品| 日韩亚洲视频| 韩国成人福利片在线播放| 国产偷v国产偷v亚洲高清| 国产精品免费一区二区三区在线观看 | 亚洲人成亚洲人成在线观看图片| 色八戒一区二区三区| 懂色av一区二区三区免费看| 亚洲人精品午夜| 欧美视频在线播放| 午夜精品婷婷| 日韩高清在线观看| 欧美精品一区二区三区四区| 国产一区二区高清| 国产精品夜夜嗨| 亚洲人成网站在线| 欧美疯狂做受xxxx富婆| 国产精品magnet| 老司机精品视频导航| 亚洲国产岛国毛片在线| 一本一道波多野结衣一区二区| 成人av网站免费| 亚洲一区二区三区三| 欧美成人猛片aaaaaaa| 亚洲一区二区三区高清| 成人av网在线| 婷婷成人激情在线网| 国产三级一区二区| 欧美综合一区二区| 国产一区二区在线观看免费播放| 美女爽到高潮91| 中文字幕在线观看一区二区| 欧美色国产精品| 影音先锋久久资源网| 国产高清精品网站| 亚洲免费av高清| 精品国产乱码久久久久久久| 羞羞视频在线观看欧美| 91蝌蚪国产九色|