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

   

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 閱讀(3026) 評論(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>
            亚洲一区在线播放| 久久精品女人的天堂av| 欧美精品成人一区二区在线观看| 久久成人羞羞网站| 欧美一区三区二区在线观看| 性8sex亚洲区入口| 久久久久国产精品一区| 久久最新视频| 欧美日韩国产精品一区| 欧美视频一区在线观看| 国产视频欧美视频| ●精品国产综合乱码久久久久| **性色生活片久久毛片| 亚洲精品在线电影| 午夜精品久久久久| 麻豆精品一区二区av白丝在线| 免费h精品视频在线播放| 91久久久久久| 亚洲精品欧美一区二区三区| 中文一区二区在线观看| 久久精品国产精品| 欧美电影在线免费观看网站 | 欧美在线看片a免费观看| 久久综合久久综合这里只有精品| 欧美国产乱视频| 国产精品视频1区| 91久久精品www人人做人人爽| 亚洲欧美另类在线| 男女视频一区二区| 久久综合久久综合这里只有精品 | 亚洲精品欧美在线| 欧美亚洲系列| 欧美日韩三区| 亚洲国产精品一区二区尤物区| 亚洲永久免费观看| 欧美韩国在线| 久久精品日韩| 国产美女精品视频免费观看| 亚洲欧洲在线一区| 久久久久国产精品午夜一区| 99视频精品在线| 欧美a级一区| 韩日在线一区| 欧美在线视频观看| 欧美中文字幕在线| 午夜精品久久久久久久久久久久| 久久夜色精品国产| 国产香蕉久久精品综合网| 日韩一级精品视频在线观看| 久久在线视频在线| 亚洲欧美日本日韩| 欧美天天影院| 国产精品99久久久久久久vr| 久久综合色综合88| 欧美一区免费| 国内精品久久久久久久果冻传媒| 亚洲一区三区电影在线观看| 亚洲国内精品| 欧美国产激情| 亚洲乱码精品一二三四区日韩在线| 美日韩免费视频| 久久av一区二区三区| 国产欧美在线观看一区| 午夜精品福利视频| 亚洲中无吗在线| 国产精品有限公司| 欧美在线资源| 亚洲伊人网站| 国产欧美精品一区aⅴ影院| 午夜精品三级视频福利| 午夜精品久久久久久99热| 国产一级一区二区| 麻豆成人精品| 欧美成人午夜77777| 日韩手机在线导航| 在线亚洲伦理| 精品成人国产在线观看男人呻吟| 老鸭窝毛片一区二区三区| 久久综合五月| 一本大道久久a久久综合婷婷 | 国产精品久久久亚洲一区| 亚洲婷婷国产精品电影人久久| 国产精品99久久不卡二区| 影音先锋亚洲电影| 欧美日韩中文字幕精品| 亚洲国产成人久久综合一区| 欧美国产在线视频| 欧美日韩国语| 久久都是精品| 免费成人av在线看| 亚洲男人的天堂在线观看| 久久精品30| 一区二区欧美视频| 久久经典综合| 亚洲欧美日韩精品一区二区| 久久国产精品毛片| 在线一区二区三区做爰视频网站| 性做久久久久久| 日韩午夜一区| 久久久久国产精品人| 亚洲一区二区三区精品在线| 久久久精品免费视频| 亚洲素人一区二区| 久久天天躁夜夜躁狠狠躁2022 | 国产精品自拍视频| 亚洲国内自拍| 国外成人免费视频| 中文精品99久久国产香蕉| 亚洲国产精品成人一区二区| 在线一区日本视频| 亚洲第一中文字幕| 欧美亚洲免费电影| 亚洲手机在线| 欧美国产在线视频| 美日韩免费视频| 国产一区二区三区四区hd| 一本色道**综合亚洲精品蜜桃冫 | 国产亚洲视频在线| 亚洲免费黄色| 亚洲人成精品久久久久| 小黄鸭精品密入口导航| 久久久久久久久久码影片| 午夜精品剧场| 看欧美日韩国产| 欧美影院在线| 国产精品国产精品国产专区不蜜| 欧美成人tv| 影音先锋国产精品| 欧美一级精品大片| 欧美一级黄色网| 国产精品国产| 日韩亚洲欧美在线观看| 日韩亚洲在线| 欧美人牲a欧美精品| 亚洲欧洲三级| 亚洲电影在线看| 久久精品久久99精品久久| 久久成人羞羞网站| 国产精品视频yy9099| 亚洲欧美国产高清| 亚洲精品一二区| 美女爽到呻吟久久久久| 欧美18av| 亚洲国产视频直播| 麻豆九一精品爱看视频在线观看免费| 久久美女性网| 亚洲高清资源| 欧美精品免费在线| 亚洲精品久久久久久久久久久久久| 亚洲区一区二| 欧美日韩小视频| 亚洲欧美视频一区| 久久久久国产精品一区二区| 极品中文字幕一区| 久久久亚洲欧洲日产国码αv| 欧美国产综合一区二区| 亚洲精品中文字幕在线| 欧美日韩xxxxx| 亚洲欧美在线另类| 久久久国产精品亚洲一区 | 亚洲高清视频一区| 欧美精品亚洲一区二区在线播放| 亚洲人精品午夜在线观看| 亚洲一区在线播放| 亚洲精品视频在线观看网站 | 亚洲激情校园春色| 欧美日韩日本视频| 羞羞漫画18久久大片| 欧美大片在线看免费观看| av成人老司机| 国内成人精品一区| 欧美激情一区二区| 亚洲欧美日韩在线高清直播| 欧美大片免费久久精品三p | 欧美日韩一区在线观看| 欧美亚洲日本一区| 亚洲国产mv| 欧美在线综合视频| 99精品视频网| 激情久久久久久| 国产精品日韩专区| 欧美肥婆在线| 久久精品女人天堂| 夜夜嗨av一区二区三区中文字幕 | 国产亚洲激情视频在线| 欧美不卡高清| 欧美在线视频一区二区三区| 亚洲第一毛片| 久久久精品tv| 亚洲一级一区| 在线欧美一区| 国产性天天综合网| 国产精品久久久久久久电影 | 欧美福利视频网站| 欧美在线999| 亚洲美女在线一区| 欧美福利一区二区三区| 欧美亚洲一区在线| 亚洲视频免费观看| 亚洲精品一二三区|