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

   

1CM

  

UDP穿透Socks5代理

????SOCKS5 代理協議是他人定的,要編寫程序首先必須了解其協議規則。所以先必須仔細地閱讀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

//建立連接 到代理服務器
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字節

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;


//發送報文
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;
}


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

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


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            亚洲欧美日韩系列| 久久免费高清视频| 日韩视频免费看| 欧美三级第一页| 亚洲欧美综合精品久久成人| 一区二区三区成人精品| 欧美三级视频在线| 午夜欧美不卡精品aaaaa| 亚洲综合欧美日韩| 国产综合av| 欧美国产综合| 欧美日韩国产一级片| 午夜视频久久久| 欧美在线观看视频在线| 在线观看福利一区| 亚洲欧洲在线一区| 欧美人成在线视频| 欧美一级视频精品观看| 久久国产直播| 亚洲美女毛片| 午夜精品av| 亚洲国产另类精品专区| 99这里有精品| 国内精品视频666| 亚洲美女在线一区| 国产偷国产偷亚洲高清97cao| 免费视频最近日韩| 国产精品videosex极品| 久久久综合网站| 欧美日韩综合精品| 老司机精品福利视频| 欧美日本不卡高清| 久久久精品一品道一区| 欧美精品乱码久久久久久按摩| 亚洲一区二区在| 久久久久亚洲综合| 午夜电影亚洲| 欧美精品久久天天躁| 久久免费精品日本久久中文字幕| 欧美精品不卡| 久久亚洲精品中文字幕冲田杏梨| 欧美日韩午夜激情| 美女国内精品自产拍在线播放| 欧美日韩一区在线| 亚洲高清一二三区| 国产一区二区三区四区在线观看| 日韩一级二级三级| 亚洲欧洲一区二区三区在线观看| 亚洲欧美日韩在线一区| 在线视频欧美日韩精品| 久久一日本道色综合久久| 欧美一区二区免费| 欧美三日本三级少妇三2023| 欧美激情一区二区| 精东粉嫩av免费一区二区三区| 中文日韩电影网站| 一区二区三区日韩| 欧美日本高清| 亚洲风情在线资源站| 136国产福利精品导航网址应用| 亚洲天堂av图片| 亚洲一区视频| 欧美三区在线视频| 一区二区三区产品免费精品久久75 | 久久精品人人| 欧美在线日韩| 国产精品国产三级国产aⅴ无密码| 亚洲片国产一区一级在线观看| 亚洲第一色在线| 久久青草久久| 欧美黄污视频| 日韩视频免费观看| 欧美精品日韩| 99视频热这里只有精品免费| 99精品国产高清一区二区| 久久综合综合久久综合| 欧美xart系列高清| 日韩网站在线| 国产精品va| 欧美在线观看视频一区二区| 久久久久久久高潮| 亚洲高清免费视频| 欧美激情视频一区二区三区免费| 亚洲国产综合在线看不卡| 在线亚洲电影| 国产精品亚洲网站| 久久久九九九九| 亚洲国产小视频在线观看| 一个人看的www久久| 欧美午夜电影完整版| 午夜精品久久久久久久男人的天堂 | 亚洲欧美久久久| 国产性天天综合网| 狂野欧美一区| 一区二区三区欧美成人| 久久精品中文| 亚洲精品日韩久久| 国产精品视频一区二区三区| 久久久久久一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 一本一本a久久| 国产精品一区二区三区四区| 久久一二三四| 亚洲性视频网址| 欧美大片在线观看一区二区| 亚洲淫性视频| 亚洲国产成人精品久久久国产成人一区 | 男同欧美伦乱| 亚洲欧美日韩网| 亚洲日本在线视频观看| 国产日韩欧美中文| 欧美bbbxxxxx| 久久成人精品一区二区三区| 亚洲国内高清视频| 久久久青草青青国产亚洲免观| a4yy欧美一区二区三区| 国产综合色产在线精品| 欧美日韩激情小视频| 久久精品在线免费观看| 中国成人在线视频| 欧美成人午夜77777| 久久高清免费观看| 亚洲欧美激情视频在线观看一区二区三区| 韩日精品视频| 国产欧美日韩麻豆91| 欧美日韩精品高清| 免费欧美高清视频| 久久久亚洲午夜电影| 亚洲综合色激情五月| 亚洲乱码视频| 亚洲国产91色在线| 久久综合给合久久狠狠色 | 国产在线视频欧美| 国产精品午夜在线观看| 欧美日韩一区二区三区在线 | 亚洲视频精品| 最新日韩欧美| 亚洲电影在线看| 欧美成人免费播放| 久久这里只精品最新地址| 欧美一区二区免费| 欧美在线影院在线视频| 亚洲欧美中文日韩v在线观看| 亚洲天堂激情| 亚洲免费在线播放| 亚洲欧美日本国产有色| 亚洲午夜精品一区二区| 亚洲一级黄色片| 亚洲一区二区成人| 午夜伦理片一区| 久久精品一区蜜桃臀影院| 久久精品人人做人人爽电影蜜月| 午夜欧美精品| 久久综合给合久久狠狠狠97色69| 久久久另类综合| 久久综合九色九九| 欧美激情亚洲精品| 亚洲精品一区二区在线| 亚洲免费高清| 亚洲愉拍自拍另类高清精品| 亚洲在线1234| 久久久久久久久久久一区| 久久综合给合久久狠狠狠97色69| 久久中文在线| 欧美日韩一区二区视频在线观看| 国产精品久久久久久久久久久久久| 国产精品国产a| 国产精品黄视频| 国产亚洲欧美一级| 亚洲日本一区二区| 亚洲一区精品在线| 久久精品视频在线| 女女同性精品视频| 亚洲免费播放| 小黄鸭精品密入口导航| 蜜桃av一区二区在线观看| 欧美日本不卡高清| 国产亚洲高清视频| 亚洲欧洲精品成人久久奇米网| 在线视频亚洲一区| 久久精品综合一区| 91久久精品国产| 午夜电影亚洲| 欧美极品在线播放| 国产日韩欧美高清免费| 亚洲精一区二区三区| 欧美影院精品一区| 亚洲第一色在线| 亚洲欧美激情四射在线日 | 欧美中文字幕不卡| 欧美人交a欧美精品| 国产综合视频在线观看| 一本大道久久a久久精品综合| 久久精品中文字幕一区二区三区| 最新中文字幕一区二区三区| 久久不射中文字幕| 国产精品乱码久久久久久| 亚洲国产一区二区精品专区| 欧美一区影院| 亚洲午夜极品|