狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
aa国产精品| 97se亚洲国产综合自在线观| 亚洲成人自拍视频| 精品国产乱码久久久久久老虎| 日韩成人免费电影| 亚洲一区精品视频| 亚洲视频香蕉人妖| 亚洲性色视频| 国产日产精品一区| 色综合色综合色综合色综合色综合 | 国产欧美日本一区二区三区| 成人国产视频在线观看| 欧美老女人在线| 精品无码三级在线观看视频 | 99精品热6080yy久久| 亚洲国产电影在线观看| 欧美日本不卡高清| 国产日产精品1区| 欧美日韩高清免费| 国产精品美女久久久久久久久| 91性感美女视频| 国产拍揄自揄精品视频麻豆| 欧美伊人影院| 国产精品乱码一区二区三区软件| 国产综合激情| 亚洲欧美另类小说| 国产精品免费一区二区三区在线观看| 亚洲综合视频在线观看| 国产一级一区二区| 天天综合日日夜夜精品| 在线一区二区三区| 久久精品国产77777蜜臀| 欧美精品在线观看一区二区| 国产精品夜夜爽| 久久这里只精品最新地址| 欧美高清日韩| 亚洲乱码国产乱码精品精可以看| 新67194成人永久网站| 日韩精品久久理论片| 欧美日韩午夜影院| 白白色 亚洲乱淫| 国产精品乱人伦中文| 国产视频一区在线观看一区免费| 亚洲h在线观看| 69精品人人人人| 99久久综合99久久综合网站| 日韩一区有码在线| 久久精品主播| 国产精品一区专区| 亚洲国产成人一区二区三区| 国产嫩草一区二区三区在线观看| 麻豆成人在线观看| 欧美精品一区视频| 一本一道久久综合狠狠老精东影业 | 欧美在线免费播放| 大尺度一区二区| 亚洲视频免费看| 色8久久精品久久久久久蜜| 国产自产视频一区二区三区| 国产亚洲一二三区| 久久国产成人| 成人黄色国产精品网站大全在线免费观看| 亚洲国产精品传媒在线观看| 久久高清一区| aa级大片欧美| 午夜视频一区二区三区| 日韩精品综合一本久道在线视频| 黄色在线成人| 国产一区二区视频在线| 国产精品二区一区二区aⅴ污介绍| 免费在线日韩av| www.日本不卡| 日一区二区三区| 国产香蕉久久精品综合网| 久久亚洲色图| 欧美a级一区| 久久精品国产免费| 国产精品盗摄一区二区三区| 欧美日韩视频在线第一区| 欧美日韩影院| 国产一区不卡在线| 一区二区三区四区亚洲| 精品欧美乱码久久久久久1区2区| 在线午夜精品| 91在线一区二区三区| 日本一区中文字幕 | 精品国产第一区二区三区观看体验| 亚洲专区一区| 99久久99精品久久久久久| 日日摸夜夜添夜夜添精品视频| 欧美国产日韩在线观看| 欧美三级电影精品| 亚洲精品社区| 欧美一区三区二区在线观看| 狠狠色丁香婷婷综合| 一区二区三区四区精品在线视频 | 欧美精品1区2区3区| 亚洲一区二区三区高清| 99精品久久免费看蜜臀剧情介绍| 日本不卡不码高清免费观看| 亚洲男同1069视频| 久久久久久久久蜜桃| 欧美日韩在线播放| 亚洲欧美日韩在线综合| 国产一区自拍视频| 99久久99久久久精品齐齐| 久久av中文字幕片| 一区二区三区四区国产精品| 国产日产欧美一区二区视频| 欧美一二三四在线| 欧美天天综合网| 久久精品亚洲| 国产日韩高清一区二区三区在线| 欧美国产日本| 99久久婷婷国产| 国产电影精品久久禁18| 精品在线一区二区| 日韩av二区在线播放| 亚洲成人综合视频| 亚洲精品视频自拍| 日韩美女视频19| 国产精品日日摸夜夜摸av| 国产亚洲精品7777| 久久久久久久久久电影| 欧美tk—视频vk| 欧美电视剧在线观看完整版| 91精品国产一区二区三区香蕉| 欧美日韩五月天| 欧美高清视频不卡网| 欧美精品乱人伦久久久久久| 欧美伊人久久大香线蕉综合69| 久久一二三区| 91久久免费观看| 欧美三片在线视频观看| 91国产福利在线| 欧美日韩一区二区在线视频| 欧美亚洲综合色| 欧美日本视频在线| 欧美日韩情趣电影| 51精品国自产在线| 日韩丝袜美女视频| 精品美女在线播放| 国产亚洲精品超碰| 国产精品久久久久一区| 亚洲欧美视频在线观看视频| 亚洲欧美成人一区二区三区| 亚洲综合视频网| 日韩高清在线电影| 精品亚洲成a人| 成人高清免费在线播放| 91在线免费视频观看| 国产综合18久久久久久| 亚洲精品三级| 91福利社在线观看| 在线综合亚洲欧美在线视频| 欧美成人福利视频| 欧美国产激情一区二区三区蜜月| ●精品国产综合乱码久久久久| 亚洲精品精品亚洲| 日韩av电影免费观看高清完整版| 久久草av在线| 99久久婷婷国产精品综合| 欧美日本国产| 亚洲免费婷婷| 欧美一级二级三级乱码| 国产精品视频看| 亚洲福利视频一区| 激情综合色综合久久| www.一区二区| 一本一本久久| 这里只有精品99re| 国产精品视频第一区| 亚洲成人三级小说| 一本一本久久a久久精品综合麻豆| 欧美制服丝袜第一页| 欧美mv日韩mv国产| 亚洲欧洲制服丝袜| 久久国产精品免费| 欧美精品偷拍| 一本到高清视频免费精品| 日韩精品自拍偷拍| 一区二区三区四区在线| 国产美女视频一区| 亚洲性图久久| 欧美日韩精品系列| 国产精品二区一区二区aⅴ污介绍| 日本系列欧美系列| 午夜国产欧美理论在线播放| 一本一道波多野结衣一区二区| www国产亚洲精品久久麻豆| 一区二区三区在线观看动漫| 国产剧情一区二区三区| 亚洲电影在线| 欧美一区二区在线视频| 一区二区三区在线播放| 成人高清视频免费观看| 久久精品官网| 欧美激情一区在线观看| 久草精品在线观看| 亚洲欧洲一区|