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

   

1CM

  

UDP穿透Socks5代理

????SOCKS5 代理協(xié)議是他人定的,要編寫程序首先必須了解其協(xié)議規(guī)則。所以先必須仔細地閱讀rfc1928。這樣對能夠編寫socket程序員來講是易如反掌。本文是專門面對SOCKS5 UDP(無驗證方式)

/*
Test Socks5 UDP proxy
Write by nenlong
http://newnan.8u8.com
mail:nnelong@tom.com
At Yanji 2004.2.26
send 5 0
recv 5 0

send 5 3 0 1 IP(4) Port(2)
recv 5 0 0 1 IP(4) Port(2)

data 0 0 0 1 IP(4) Port(2) DATA

UDP ASSOCIATE
The UDP ASSOCIATE request is used to establish an association within
the UDP relay process to handle UDP datagrams. The DST.ADDR and
DST.PORT fields contain the address and port that the client expects
to use to send UDP datagrams on for the association. The server MAY
use this information to limit access to the association. If the
client is not in possesion of the information at the time of the UDP
ASSOCIATE, the client MUST use a port number and address of all zeros.

If the reply code (REP value of X'00') indicates a success, and the
request was either a BIND or a CONNECT, the client may now start
passing data.

*/
#include "StdAfx.h"
#include "winsock2.h"
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
void closesocks(SOCKET s);
int senddata(char *data,int isize,sockaddr_in sa);//UDP
#pragma comment (lib,"ws2_32.lib")
char szMyIP[20];
char szProxyIP[20];
char szMsg[50];
int isc;
void main(void)
{
// 開始使用ws2_32.dll
sprintf(szProxyIP,"192.168.0.1");

WSADATA wsaData;
int iRetVal,i;
iRetVal = WSAStartup ( MAKEWORD ( 1,1 ), &wsaData );
if ( 0 != iRetVal)
{
printf("WSAStartup %d", iRetVal );
return;
}
printf("WSAStartup [OK]\n");


//取得主機名稱
char szhostname[128];
if(SOCKET_ERROR ==gethostname(szhostname,128))
{
printf("gethostname %X\n",WSAGetLastError());
return;
}
printf("hostname %s[OK]\n",szhostname);

struct hostent FAR * lps;
lps=gethostbyname(szhostname);
if(lps==NULL)
{
printf("gethostbyname error\n");
}
else
{
IN_ADDR ia;
memcpy(&ia,lps->h_addr_list[0],4);
sprintf(szMyIP,"%s",inet_ntoa (ia));
printf(" addr:%s\n",szMyIP);
}

//建立socket
//AF_INET ---->to AF_INET for IPv4 addressing
//SOCK_STREAM --->TCP
SOCKET s;
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("socket %X\r",WSAGetLastError());
closesocket(s);
return;
}
printf("socket TCP [OK]\n");
sockaddr_in sa;
sa.sin_family=AF_INET;
sa.sin_port=htons(1080); //Port
sa.sin_addr.s_addr= inet_addr(szProxyIP); //IP

//建立連接 到代理服務(wù)器
iRetVal=connect (s,(SOCKADDR*)&sa,sizeof(sockaddr_in));
if(iRetVal==SOCKET_ERROR)
{
printf ("connect %X\n",WSAGetLastError());
closesocket(s);
return;
}
printf("connect %s %d[OK]\n",szProxyIP,1080);
//請求無驗證
char buff[255];
buff[0]=5;buff[1]=0;
iRetVal=send(s,buff,2,0);
if(iRetVal==SOCKET_ERROR)
{
printf ("send 50 %X\n",WSAGetLastError());
closesocket(s);
return;
}
printf("Send 5 0 [OK]\n");
memset(buff,0,4);
printf("Recv ");
iRetVal=recv(s,buff,4,0);
printf("%02X %02X %02X %02X [OK]\n",buff[0],buff[1],buff[2],buff[3]);

//返回 5 0 請求成功
if(buff[0]!=5 || buff[1]!=0)
{
printf ("not proxy service\n");
closesocket(s);
return;
}

printf("find proxy server[OK]\n");

//報文10字節(jié)

buff[0]=5; //Ver
buff[1]=3; //UDP
buff[2]=0;
buff[3]=1; //IP V4 address
buff[4]=(unsigned char)0;
buff[5]=(unsigned char)0;
buff[6]=(unsigned char)0;
buff[7]=(unsigned char)0;
buff[8]=(unsigned char)0;
buff[9]=(unsigned char)0;


//發(fā)送報文
iRetVal=send(s,buff,10,0);
if(iRetVal==SOCKET_ERROR)
{
printf ("send 530100001388 %X\n",WSAGetLastError());
closesocket(s);
return;
}
printf("Send 05 03 00 01 00 00 00 00 00 00 [OK]\n");
memset(buff,0,10);
iRetVal=recv(s,buff,10,0);
if(iRetVal==SOCKET_ERROR)
{
printf ("recv %X\n",WSAGetLastError());
closesocket(s);
return;
}
printf("Recv ");
for(i=0;i<10;i++)
printf ("%02X ",(unsigned char)buff[i]);
printf("[OK]\n");
if(buff[0]!=5 || buff[1]!=0)
{
printf ("not UDP proxy service\n");
closesocket(s);
return;
}

char szIP[20];
sprintf(szIP,"%d.%d.%d.%d",
(unsigned char)buff[4],
(unsigned char)buff[5],
(unsigned char)buff[6],
(unsigned char)buff[7]);
int port;
port=(buff[8]<<8)+buff[9];
Sleep(500);
printf("UDP Proxy Add:%s Port:%d\nPress any key Send ...\n",szIP,port);
getch();
isc=0;
int ikey;
while((ikey=getch())!=0x1b)
{
//send data
sockaddr_in sato;
sato.sin_family=AF_INET;
sato.sin_port=htons(port);
sato.sin_addr.s_addr= inet_addr(szIP);

buff[0]=0; //RSV
buff[1]=0; //RSV
buff[2]=0; //FRAG
buff[3]=1; //IPV4
buff[4]=(unsigned char)192;
buff[5]=(unsigned char)168;
buff[6]=(unsigned char)0;
buff[7]=(unsigned char)1;
buff[8]=(unsigned char)0x13;
buff[9]=(unsigned char)0x88;//5000

isc++;
if(isc>50)isc=0;
if(ikey==17) //ctrl+Q
sprintf(szMsg,"Q");
else
sprintf(szMsg,"Hello SOCKS5 (UDP) %d ",isc);

for(i=0;i<(int)strlen(szMsg);i++)
{
buff[10+i]=szMsg[i];
}
buff[10+i]=0;

senddata(buff,10+strlen(szMsg)+1,sato);

if(iRetVal==SOCKET_ERROR)
{
printf ("send data %X\n",WSAGetLastError());
closesocket(s);
return;
}
printf("Press ESC key to exit Ctrl+Q Close RECV5000 Windows\n");
}
closesocket(s);
return;
}

void closesocks(SOCKET s)
{
closesocket(s);
WSACleanup();
}

int senddata(char *data,int isize,sockaddr_in sa)
{
int ret,i;
SOCKET s;
s=socket(AF_INET,SOCK_DGRAM,0);
ret=connect(s,(SOCKADDR*)&sa,sizeof(sockaddr_in));
if(ret==SOCKET_ERROR)
{
printf("UDP connect %X\n",ret);
closesocket(s);
return ret;
}
printf("UDP Send IP:%s Port:%d\nSend ",inet_ntoa (sa.sin_addr),ntohs (sa.sin_port));
for(i=0;i<isize;i++)
printf("%02X ",(unsigned char)data[i]);
printf("\n\n");
ret=send(s,data,isize,0);
closesocket(s);
return ret;
}


  以上即關(guān)于UDP穿透Socks5代理(無驗證)的一點心得,希望能夠得到大家的指正。

posted on 2007-03-13 10:32 1CM 閱讀(3026) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩手机在线导航| 亚洲香蕉视频| 欧美国产亚洲精品久久久8v| 日韩午夜在线视频| 你懂的国产精品| 亚洲精品综合精品自拍| 久久美女性网| 亚洲图片欧美日产| 亚洲国产黄色| 国产亚洲在线| 久久高清免费观看| 久久免费视频一区| 亚洲电影天堂av| 久久精品99国产精品| 久久麻豆一区二区| 亚洲国内自拍| 国产女优一区| 巨乳诱惑日韩免费av| 欧美黄色影院| 一区二区三区蜜桃网| 久久精品亚洲精品| 一区二区三区四区五区精品视频| 香港久久久电影| 欧美激情自拍| 久久九九免费视频| 亚洲福利专区| 国产欧美一区二区三区在线看蜜臀| 亚洲欧洲日本在线| 午夜一区在线| 午夜视频一区在线观看| 欧美日一区二区三区在线观看国产免| 久久精品人人做人人爽电影蜜月| 国产精品一区二区久久久久| 卡一卡二国产精品| 欧美一区二区三区在线播放| 亚洲精品国精品久久99热一| 久久精品国产精品亚洲精品| 正在播放亚洲| 亚洲精品综合精品自拍| 亚洲激情在线观看| 国产一区二区0| 国产视频丨精品|在线观看| 国产精品久久久久久久久动漫| 欧美/亚洲一区| 老司机午夜免费精品视频| 亚洲欧美另类国产| 欧美一区二区三区视频| 亚洲一区二区三区欧美| 99精品视频一区二区三区| 日韩一二三区视频| aa成人免费视频| 在线亚洲观看| 亚洲一区免费看| 亚洲毛片播放| 性欧美大战久久久久久久免费观看| 亚洲久久在线| 亚洲图片自拍偷拍| 久久av免费一区| 久久综合色一综合色88| 亚洲区国产区| 亚洲欧美精品在线| 欧美激情视频在线播放 | 老妇喷水一区二区三区| 欧美福利小视频| 亚洲一区在线观看视频| 午夜在线一区| 性久久久久久| 久久久久久91香蕉国产| 欧美黑人国产人伦爽爽爽| 欧美寡妇偷汉性猛交| 欧美日韩精品在线视频| 国产精品美女| 一区二区三区不卡视频在线观看 | 影音先锋欧美精品| 一区二区三区视频在线| 亚洲国产日韩欧美| 亚洲在线1234| 欧美视频一区二区三区在线观看| 国产麻豆日韩| 欧美另类久久久品| 亚洲黄色在线视频| 亚洲国产成人久久| 看欧美日韩国产| 亚洲靠逼com| 亚洲经典三级| 欧美精品1区2区| 亚洲一区精彩视频| 一个色综合av| 国内精品一区二区| 美女网站在线免费欧美精品| 久久久精品国产99久久精品芒果| 国产日韩成人精品| 久久综合图片| 欧美视频在线观看| 欧美一区二区在线观看| 久久精品二区三区| 亚洲国产另类久久精品| 亚洲精品永久免费精品| 国产精品av久久久久久麻豆网| 亚洲一级影院| 久久精品亚洲一区| 一区电影在线观看| 欧美伊人久久久久久午夜久久久久 | 欧美日韩一区二区三区四区在线观看| 欧美人在线视频| 久久婷婷国产综合精品青草| 欧美成人亚洲| 久久亚洲综合色| 欧美日韩综合精品| 欧美激情一级片一区二区| 国产欧美精品va在线观看| 亚洲欧洲一级| 久久人人97超碰精品888| 亚洲视频免费在线| 欧美多人爱爱视频网站| 老色鬼久久亚洲一区二区| 欧美色精品在线视频| 亚洲国产精品成人久久综合一区| 国产精品久久久久久久久免费 | 国产美女精品视频| 亚洲欧美日韩精品久久奇米色影视| 欧美一级淫片播放口| 久久综合久久久久88| 久久国产手机看片| 欧美日韩亚洲综合| 亚洲精品视频中文字幕| 狠色狠色综合久久| 久久福利毛片| 免费一级欧美片在线观看| 国产有码一区二区| 亚洲欧美国产精品桃花| 欧美日韩免费观看一区 | 亚洲免费网址| 欧美一区精品| 国产欧美一区二区白浆黑人| 久久aⅴ国产欧美74aaa| 欧美成人免费全部| 99国产精品国产精品久久| 欧美日本簧片| 亚洲一区免费在线观看| 美脚丝袜一区二区三区在线观看| 亚洲成人在线视频播放| 欧美日韩国产精品一区二区亚洲| av成人免费| 国产视频亚洲精品| 欧美成人一区二区三区在线观看| 亚洲色在线视频| 欧美成人精品福利| 亚洲免费影院| 亚洲精品久久久久久久久久久久| 欧美激情成人在线| 久久亚洲春色中文字幕| 国产精品99久久久久久人| 亚洲人在线视频| 久久综合久久综合久久综合| 亚洲一区二区av电影| 亚洲精品一区二区在线| 好吊一区二区三区| 国产亚洲aⅴaaaaaa毛片| 欧美日韩在线看| 欧美三级小说| 国产精品视频一二三| 国产精品免费久久久久久| 欧美成人一区二区三区| 欧美久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 欧美福利在线| 欧美日韩精品三区| 欧美午夜宅男影院| 亚洲美女在线国产| 一本综合精品| 亚洲午夜精品国产| 午夜影院日韩| 欧美成人一区在线| 国产精品美女999| 国产在线精品一区二区中文| 尤物九九久久国产精品的特点 | 久久一区二区三区av| 亚洲大片av| 亚洲女ⅴideoshd黑人| 麻豆久久婷婷| 国产精品一级久久久| 亚洲精品日韩在线观看| 欧美一级视频| 日韩一级网站| 欧美 日韩 国产在线| 国产精品夜色7777狼人| 影音先锋欧美精品| 篠田优中文在线播放第一区| 猛男gaygay欧美视频| 洋洋av久久久久久久一区| 卡一卡二国产精品| 国产原创一区二区| 亚洲欧美在线另类| 在线视频日韩精品| 欧美日韩三级电影在线| 日韩视频一区二区三区在线播放免费观看| 亚洲深夜影院| 亚洲视频一二| 国产精品入口夜色视频大尺度|