青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

穿透代理服務器編程

Posted on 2009-10-15 23:38 S.l.e!ep.¢% 閱讀(531) 評論(0)  編輯 收藏 引用 所屬分類: NetWork
在日常工作和學習的時,我們時常要和代理服務器打交道,
比如通過企業(yè)、校園局域網(wǎng)上網(wǎng)的時候,一般代理服務器都支持幾種常見的代理協(xié)議標準,如Socks4,Socks5,Http代理,其中Socks5需要用戶驗證,代理起來比較復雜。
我在查閱一些文檔和相關(guān)資料后,總結(jié)一些TCP協(xié)議穿透代理服務器的程序,希望能對大家有所幫助。

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

struct sock4ans1
{
char VN;
char CD;
};

struct sock5req1
{
char Ver;
char nMethods;
char Methods;
};

struct sock5ans1
{
char Ver;
char Method;
};

struct sock5req2
{
char Ver;
char Cmd;
char Rsv;
char Atyp;
char other;
};

struct sock5ans2
{
char Ver;
char Rep;
char Rsv;
char Atyp;
char other;
};

struct authreq
{
char Ver;
char Ulen;
char Name;
char PLen;
char Pass;
};

struct authans
{
char Ver;
char Status;
};

//通過Socks4方式代理
if( !ClientSock.Connect( g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort) )
{
m_sError = _T("不能連接到代理服務器!");
ClientSock.Close();
return FALSE;
}
char buff;
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("不能連接到代理服務器!");
ClientSock.Close();
return FALSE;
}
char buff;
struct sock5req1 *m_proxyreq1;
m_proxyreq1 = (struct sock5req1 *)buff;
m_proxyreq1->Ver = 5;
m_proxyreq1->nMethods = 2;
m_proxyreq1->Methods = 0;
m_proxyreq1->Methods = 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("代理服務器用戶驗證不成功!");
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("不能連接到代理服務器!");
ClientSock.Close();
return FALSE;
}
char buff;
sprintf( buff, "%s%s:%d%s","CONNECT ",GetServerHostName(),GetPort(),"
HTTP/1.1rnUser-Agent: MyApp/0.1rnrn");
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;
}
我們一般先與代理服務器連通,然后向代理服務器發(fā)送代理驗證的用戶名和密碼
(如果需要,如Socks5代理),驗證成功后,再向代理服務器發(fā)送需要連接的目的
地址和端口。以上代碼僅用于TCP方式連接
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久永久免费| 欧美一级久久久| 99国产欧美久久久精品| 国产在线观看一区| 嫩草国产精品入口| 久久久久久国产精品mv| 老牛影视一区二区三区| 亚洲一级影院| 欧美一区二区三区免费视| 麻豆av福利av久久av| 亚洲午夜国产成人av电影男同| 欧美日韩国产成人| 欧美福利电影网| 国产一区二区三区免费在线观看| 亚洲国产精品精华液2区45| 午夜精品在线看| 欧美成人一区在线| 欧美女激情福利| 激情小说亚洲一区| 欧美在线关看| 亚洲欧美三级在线| 国产精品羞羞答答xxdd| 午夜国产精品影院在线观看| 久久精品视频在线| 一本一本久久a久久精品综合麻豆| 亚洲影视中文字幕| 久久久人成影片一区二区三区观看| 久久国产精品久久久久久久久久 | 狂野欧美激情性xxxx欧美| 另类天堂视频在线观看| 欧美日韩国产页| 激情一区二区三区| 亚洲一区二区免费看| 亚洲区国产区| 国产一区二区三区在线观看视频| 亚洲国产黄色| 欧美在线亚洲| 99这里有精品| 欧美成人免费视频| 国产亚洲一二三区| 午夜精品一区二区三区四区 | 亚洲欧洲在线免费| 欧美一级大片在线免费观看| 亚洲高清资源| 在线亚洲精品| 欧美日韩免费一区二区三区| 91久久精品国产91久久| 麻豆成人av| 欧美一区二区观看视频| 国产精品日韩欧美一区| 亚洲视频欧美在线| 亚洲欧洲在线视频| 亚洲国产精品999| 欧美日韩一区二区三区视频| 亚洲黄色免费| 牛牛影视久久网| 久久久亚洲国产天美传媒修理工 | 亚洲一区二区三区成人在线视频精品 | 亚洲国产精品99久久久久久久久| 久久精品最新地址| 欧美伊人久久大香线蕉综合69| 国产精品一区视频| 小黄鸭视频精品导航| 亚洲午夜精品一区二区三区他趣| 国产精品成人播放| 亚洲影院高清在线| 亚洲视频播放| 国产日韩一区二区三区| 久久精品欧美日韩| 久久福利影视| 在线电影一区| 亚洲国产mv| 99这里有精品| 国产一区二区成人| 久久人人爽国产| 久久国产精品一区二区| 在线精品国产欧美| 亚洲破处大片| 国产精品mm| 久久av在线| 久久精品最新地址| 亚洲日韩成人| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美色道久久88综合亚洲精品| 亚洲最新视频在线播放| 日韩午夜在线视频| 国产精品视频免费观看www| 欧美一区二区三区免费在线看| 亚洲欧美国产三级| 国模私拍一区二区三区| 欧美黄色大片网站| 国产精品99久久久久久久久久久久 | 西瓜成人精品人成网站| 亚洲欧美一区二区原创| 韩国自拍一区| 亚洲激情一区二区| 国产精品v亚洲精品v日韩精品 | 免费视频久久| 欧美欧美在线| 欧美一级淫片播放口| 性亚洲最疯狂xxxx高清| 亚洲国产欧美一区二区三区同亚洲| 亚洲品质自拍| 国内综合精品午夜久久资源| 亚洲电影在线免费观看| 国产精品日本一区二区| 免费中文字幕日韩欧美| 欧美日本三级| 久久野战av| 国产精品久久97| 欧美电影免费观看高清| 欧美日韩亚洲天堂| 久久riav二区三区| 欧美精品成人一区二区在线观看| 欧美一区网站| 欧美日韩成人激情| 欧美成ee人免费视频| 国产精品日韩欧美| 99精品欧美一区二区蜜桃免费| 樱桃国产成人精品视频| 亚洲欧美国内爽妇网| 亚洲视频成人| 美女任你摸久久| 久久久久久夜| 国产乱子伦一区二区三区国色天香| 亚洲高清在线观看一区| 国产真实乱偷精品视频免| 亚洲婷婷免费| 亚洲线精品一区二区三区八戒| 免费观看成人www动漫视频| 久久九九99| 欧美大片在线观看| 欧美精品1区| 亚洲国产成人久久| 亚洲国产精品久久精品怡红院| 午夜精品久久99蜜桃的功能介绍| 亚洲在线一区二区三区| 欧美日韩免费观看一区=区三区| 欧美成人三级在线| 亚洲国产日韩欧美在线图片| 国产在线高清精品| 日韩亚洲国产精品| 欧美成人精品1314www| 欧美大片免费观看| 在线免费观看日韩欧美| 久久中文精品| 欧美国产日本高清在线| 欧美精品播放| 一本一本久久| 午夜日韩视频| 国产日韩欧美综合| 久久久亚洲国产天美传媒修理工| 美国十次成人| 亚洲精品日产精品乱码不卡| 欧美风情在线| 中文在线资源观看网站视频免费不卡 | 亚洲高清毛片| 麻豆国产精品一区二区三区 | 国产精品免费福利| 中文高清一区| 亚洲国产欧美一区二区三区丁香婷| 快射av在线播放一区| 亚洲风情在线资源站| 亚洲开发第一视频在线播放| 欧美日韩高清不卡| 亚洲欧美国产不卡| 免费亚洲电影| 亚洲小说欧美另类婷婷| 国产日韩综合一区二区性色av| 久久成人精品无人区| 欧美激情1区2区3区| 亚洲一区在线免费观看| 国产视频在线观看一区| 欧美成人自拍视频| 亚洲少妇在线| 美女视频黄a大片欧美| 日韩午夜在线| 国产一区二区三区不卡在线观看 | 亚洲欧美在线x视频| 尤物在线观看一区| 欧美午夜电影完整版| 久久精品一本久久99精品| 99re成人精品视频| 久久综合色综合88| 亚洲欧美国产va在线影院| 在线观看av一区| 午夜精品在线视频| 麻豆精品一区二区av白丝在线| 毛片基地黄久久久久久天堂| 欧美日韩免费精品| 久久综合狠狠| 国产精品mm| 亚洲欧美一区二区精品久久久| 久久中文欧美| 亚洲男人av电影| 亚洲国产cao| 国产日韩欧美高清免费| 欧美激情麻豆| 亚洲欧美成人一区二区在线电影| 久久久青草婷婷精品综合日韩|