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

S.l.e!ep.¢%

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

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

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

//使用到的結(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("不能連接到代理服務(wù)器!");
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("不能連接到代理服務(wù)器!");
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("代理服務(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;
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;
}
我們一般先與代理服務(wù)器連通,然后向代理服務(wù)器發(fā)送代理驗證的用戶名和密碼
(如果需要,如Socks5代理),驗證成功后,再向代理服務(wù)器發(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精品国产| 欧美伦理一区二区| 国产精品美女久久久久aⅴ国产馆| 国产精品一区二区视频| 国产在线精品一区二区夜色| 亚洲人成小说网站色在线| 宅男精品视频| 另类亚洲自拍| 国产一区二区三区黄视频| 国产一级一区二区| 99精品久久久| 久久九九全国免费精品观看| 亚洲第一福利视频| 亚洲最新视频在线| 久久久久久九九九九| 欧美日韩国产精品一区| 国产综合色一区二区三区| 亚洲美女av在线播放| 久久精品综合| 在线视频精品一区| 欧美高潮视频| 韩日视频一区| 亚洲欧美日韩精品久久久| 亚洲国产高清一区| 欧美在线视频一区二区| 欧美日韩综合视频| 亚洲欧洲一区二区天堂久久| 亚洲午夜精品久久久久久app| 欧美成人性网| 欧美专区在线观看| 国产精品美女xx| 中日韩视频在线观看| 亚洲国产成人精品久久久国产成人一区 | 欧美激情一区在线观看| 国产视频在线观看一区二区| 在线亚洲精品福利网址导航| 欧美福利视频网站| 久久久久国产免费免费| 国产亚洲欧美色| 亚洲欧美日本精品| 亚洲图片欧洲图片av| 欧美三级午夜理伦三级中视频| 亚洲国产日韩欧美在线图片 | 久久躁狠狠躁夜夜爽| 亚洲神马久久| 欧美日韩亚洲网| 亚洲精品中文字幕有码专区| 欧美 日韩 国产 一区| 久久精品视频免费| 曰韩精品一区二区| 免费精品视频| 六月婷婷一区| 亚洲国产精品久久91精品| 欧美成人午夜激情在线| 欧美成人a∨高清免费观看| 亚洲高清久久网| 亚洲第一福利视频| 欧美精品在线一区二区| 一区二区三区精品视频在线观看| 亚洲国产精品毛片| 欧美日韩高清不卡| 亚洲一级在线| 欧美一区二区三区在线视频| 狠狠色狠狠色综合日日tαg| 免费短视频成人日韩| 欧美精品首页| 亚洲伊人伊色伊影伊综合网| 亚洲欧美视频一区| 一区二区三区在线免费观看| 亚洲高清在线精品| 欧美色区777第一页| 香蕉久久夜色精品国产使用方法 | 欧美成人黄色小视频| 日韩一级免费观看| 亚洲在线免费| 亚洲电影免费在线 | 在线观看免费视频综合| 亚洲国产日韩一区| 国产精品乱码一区二区三区| 久久久久久91香蕉国产| 欧美成人免费va影院高清| 亚洲一区二区三区四区中文| 欧美一区二区免费视频| 日韩一级裸体免费视频| 久久成人久久爱| avtt综合网| 久久久成人精品| 亚洲一区久久久| 久久综合狠狠综合久久激情| 亚洲视频免费| 久久影院午夜片一区| 亚洲综合精品自拍| 免费黄网站欧美| 久久精品视频在线免费观看| 欧美风情在线观看| 欧美在线播放高清精品| 欧美大片免费久久精品三p| 欧美在线中文字幕| 欧美人与性动交α欧美精品济南到| 午夜影院日韩| 欧美激情国产高清| 免费的成人av| 在线观看视频欧美| 亚洲视频在线视频| 最新亚洲视频| 久久精品一二三| 欧美一区二区女人| 欧美视频在线一区| 亚洲国产成人精品久久| 一区二区在线视频播放| 亚洲欧美日韩高清| 亚洲欧美成人网| 欧美精品一区三区在线观看| 蜜臀av一级做a爰片久久| 国产精品私房写真福利视频| 亚洲日本精品国产第一区| 狠狠操狠狠色综合网| 女女同性精品视频| 国产一区日韩欧美| 亚洲欧美网站| 欧美在线视频a| 国产精品午夜在线观看| 亚洲少妇自拍| 欧美一级大片在线观看| 国产精品网站一区| 亚洲免费网站| 久久久水蜜桃| 伊人婷婷欧美激情| 久久五月激情| 欧美成人黑人xx视频免费观看| 激情久久影院| 蜜桃av一区二区在线观看| 欧美福利视频网站| 夜夜嗨av一区二区三区中文字幕 | 国产一区二区日韩精品欧美精品 | 国产精品yjizz| 亚洲一级电影| 久久国产精品99国产精| 激情综合激情| 欧美成人一品| 99热在线精品观看| 欧美一区二区三区日韩| 黄色成人在线网站| 欧美精品精品一区| 亚洲免费在线播放| 蜜臀久久99精品久久久久久9| 亚洲欧洲日产国码二区| 欧美日韩伦理在线免费| 亚洲欧美一区二区三区久久 | 亚洲人成人一区二区在线观看| 欧美激情区在线播放| 亚洲视频中文| 蜜桃精品久久久久久久免费影院| 亚洲激情综合| 国产精品专区第二| 免费不卡亚洲欧美| 一区二区欧美日韩| 理论片一区二区在线| 在线一区亚洲| 国语自产精品视频在线看抢先版结局 | 久久激情网站| 欧美怡红院视频| 亚洲午夜精品视频| 国内精品久久国产| 欧美精品福利在线| 久久成人免费| aa日韩免费精品视频一| 久久亚洲精品一区二区| 一区二区三区欧美在线| 狠狠色丁香婷综合久久| 欧美三级视频在线| 麻豆成人小视频| 亚洲永久免费精品| 亚洲欧洲日产国码二区| 久久青草久久| 午夜免费在线观看精品视频| 亚洲精品日韩在线观看| 国产一区在线看| 欧美视频在线看| 欧美成年人视频网站| 久久久久国产免费免费| 亚洲一区视频在线| 日韩视频三区| 最新日韩在线| 欧美激情91| 欧美福利视频一区| 久久婷婷国产综合精品青草| 欧美在线啊v| 亚洲欧美在线另类|