Winsock完成端口模型中如何使用不阻塞的gethostbyname,用于Socks5代理服务器,需要远程解析地址

Winsock完成端口模型中如何使用不阻塞的gethostbyname,用于Socks5代理服务器,需要远程解析地址,第1张

使用api函数 WSAGETSELECTEVENT()函数接受管理socket,当接受到请求时使用gethostbyname

如:swich(WSAGETSELECTEVENT(socket))

CASE FD_ACCEPT: gethostbyname

WSAGETSELECTEVENT()是实现非阻塞编程的关键

这个要HOOK SPI函数

我上段代码吧

int WSPAPI WSPConnect(

SOCKET s,

const struct sockaddr name,

int namelen,

LPWSABUF lpCallerData,

LPWSABUF lpCalleeData,

LPQOS lpSQOS,

LPQOS lpGQOS,

LPINT lpErrno)

{

if (_ProxySwitch == TRUE) //代理开关

{

struct sockaddr_in sin;

sin = (const struct sockaddr_in )name;

int Port = ntohs(sinsin_port);

char IP = inet_ntoa(sinsin_addr);

if (strcmp(IP, "127001") == 0 || strcmp(IP, "0000") == 0)

{

return NextProcTablelpWSPConnect(s, name, namelen, lpCallerData, lpCalleeData, lpSQOS, lpGQOS, lpErrno);

}

return Socks5Proxy //这里为连接代理服务器的代码。

}

else

{

return NextProcTablelpWSPConnect(s, name, namelen, lpCallerData, lpCalleeData, lpSQOS, lpGQOS, lpErrno);

}

}

这个是LSP的HOOK。修改这个函数就行

细节上还要处理WSPSENDTO及WSPRECVFORM等API

在快期交易终端软件登录界面“选择服务器”中选择“代理及服务器配置…”,进入“代理及服务器配置”界面,在选择“使用代理”,并输入“类型”、“地址”、“端口”、“用户名”、“密码”,点击“确定”后返回登录界面,完成设置。代理服务器的“类型”支持“socket4”和“socket5”,不支持“http”。

客户端设置说明书

以下图例说明的主要是目前较为常用的客户端软件,都是假设代理服务器的IP地址是19216801,代理服务器端口都是安装后的缺省值,邮箱地址都则以support@youngzsoftcom为例,您在设置自己的代理时,请酌情根据自己的具体情况进行相应修改。

以下设置对CCProxy 530及以上版本有效。

客户端设置目录

1、客户端设置前的准备工作

2、设置IE浏览器代理上网

3、设置Outlook的邮件代理

4、设置虚拟主机邮件代理

5、设置Foxmail邮件代理

6、设置Outlook新闻代理

7、设置CuteFTP代理

8、设置CuteFTP Pro代理

9、设置ICQ代理

10、设置OICQ代理

11、设置MSN Messenger代理

12、设置聊天室代理(基于Java)

13、设置语音聊天代理、语音聊天室、可乐吧代理

14、设置NetMeeting代理

15、设置NetTerm上BBS站点

16、设置网络蚂蚁代理

17、设置网际快车FlashGet代理

18、设置联众、中国游戏中心、基地城市等游戏代理

19、设置客户机联网游戏CS、石器时代、三国等代理

20、设置RealPlayer代理

21、设置MediaPlayer代理

22、通过内部电话线拨号到代理服务器的IE设置

23、设置Norton Antivirus在线更新病毒库代理

24、设置金山毒霸在线升级代理

25、设置瑞星升级代理

26、设置KV3000升级代理

27、杀毒软件和防火墙推荐

28、其它软件本身没有代理设置的第三方软件sockscap代理设置

客户端设置具体说明

1、客户端设置前的准备工作

1) 确认客户端与服务器是连通的,能够互相访问。

2) 确定代理服务器地址。代理服务器地址就是安装代理服务器的机器的网络地址。

这个地址,是指服务器在局域网中的本地IP地址。本地IP地址可以从CCProxy的设置对话框中得到。设置对话框中

的本地IP地址一般情况下可以用"自动检测"得到。如果服务器安装了双网卡,则需要手工选取:取消"自动检测",

从列表中选取。如果不能确认服务器的IP地址,也可以用服务器的机器名作为代理服务器地址。

2、设置IE浏览器代理上网

1)流程:

IE浏览器->菜单"工具"->"Internet选项"->"连接"->"局域网设置"->选中"使用代理服务器"->"高级"->"代理服务器设置"。取消"对所有协议均使用相同的代理服务器"。

在"HTTP"中填上代理服务器地址,端口为808;

在"Secure"中填上代理服务器地址,端口为808;

在"FTP"中填上代理服务器地址,端口为808;

在"Gopher"中填上代理服务器地址,端口为808;

在"Socks"中填上代理服务器地址,端口为1080。

2)图示:

IE菜单“工具”->“Internet 选项”:

点击上图中的“局域网设置”:

点击上图中的“高级”:

3、设置Outlook的邮件代理

邮箱地址:support@youngzsoftcom

邮箱帐号:support

邮箱密码:

SMTP地址:smtpyoungzsoftcom

POP3地址:pop3youngzsoftcom

代理服务器地址:19216801

点击上图中的“属性”:

点击上图中的“服务器”:

点击上图中的“设置”:

如果你的邮件服务器发送邮件要求身份验证:

如果你的邮件服务器发送邮件不要求身份验证:

4、设置虚拟主机邮件代理

邮箱地址:support@youngzsoftcom

邮箱帐号:support@youngzsoftcom

邮箱密码:

SMTP地址:smtpyoungzsoftcom

POP3地址:pop3youngzsoftcom

代理服务器地址:19216801

点击上图中的“属性”:

点击上图中的“服务器”:

点击上图中的“设置”

如果你的邮件服务器发送邮件要求身份验证:

如果你的邮件服务器发送邮件不要求身份验证:

5、设置Foxmail邮件代理

首先到Foxmail官方站点 http://foxfoxmailcomcn/ 下载最新的Foxmail42

菜单“选项”->“系统设置”,弹出设置对话框,在“代理”一页:

其他设置就和普通的直接上网用Foxmail一样,无需修改SMTP和POP3等设置。

如果是利用Foxmail收Hotmail邮件,需要在客户端启动Foxmail-Hotmail Proxy(Foxmail42自带),然后点击Foxmail-Hotmail Proxy的菜单“服务”-“选项”,在“服务器”一页:

(其中的代理服务器端口应该填写HTTP的代理端口)

6、设置Outlook新闻代理

选择你已经配置好的新闻服务器,右键菜单->属性->服务器,

假设你原来的服务器名为msnewsmicrosoftcom,现在将服务器名改为代理服务器地址,选择"此服务器要求登录",在帐号里面填上 #msnewsmicrosoftcom,密码空缺,在"记住密码"前打勾需要注意的是,如果您上的不是免费的新闻服务器,也就是要求您提供帐号和密码的,那么您的帐号名应该修改为:旧的帐号名#原新闻服务器地址,密码还是原来的密码。

7、设置CuteFTP代理

《CuteFTP代理设置方法》

代理服务器地址:19216801

FTP端口:2121 (注意不是FTP Web端口808)

菜单->“Edit”->“Settings”:

上图中有一个PASV选项,一般FTP服务器都支持PASV和PORT方式,由于某些FTP服务器出于安全考虑,不支持PASV方式,但是PORT方式是绝大部分FTP服务器都支持的。

CuteFTP的SOCKS5代理只支持PASV方式,但是随着网络安全的普及,已经有不少FTP服务器不支持PASV方式,所以我们建议您尽量不要用SOCKS5代理CuteFTP,除非代理服务器没有为客户端提供FTP服务协议。

[小知识]

PASV和PORT模式有什么不同,为什么PORT方式比PASV方式安全?

FTP传输过程中要求建立一个专门的连接来传输数据,建立连接有两个方法:

一个就是FTP Server打开一个端口,Client可以去连接这个端口来建立连接。这就是PASV方式。

一个就是FTP Client打开一个端口,Server去连接这个端口来建立连接。这就是PORT方式。

显然,如果服务器打开了一个端口,就意味着向互联网打开了一个端口。所以PORT方式比PASV方式安全。

8、设置CuteFTP Pro代理

菜单"Edit"->"Global Settings"->"Connection"->"SOCKS4 & 5":

选择"Use the highlighted Socks server when connecting";

选择"Add"按钮,删除Host里的"<New>",填上代理服务器地址,Port填1080。

不要选"Use Authentication",选择"Socks5"。

9、设置ICQ代理

ICQ-> Preferences -> Connections:

"Server" : 选择"Using Firewall", "Proxy" 选择"Socks 5"

"Firewall" : 选择"Socks 5", 在"Host"里填写代理服务器地址,"Port" 填1080,选择"use proxy to resolve hostnames"

详细设置图请看http://wwwyoungzsoftcom/tools/icqhtm (假设代理服务器地址为19216801)

10、设置OICQ代理(腾讯QQ)

QQ菜单->“系统参数”->“网络设置”:

如果QQ中的"测试"通得过,还上不了QQ,根据我们对用户的技术支持解答,有几种可能:

1)服务器是双网卡,有两个IP地址,这两个IP地址不能是在同一个网段,这样会导致路由混乱。

比如一个IP是19216801,另外一个就最好是19216811。

2)服务器的网络属性里安装了太多的无用的网卡驱动和TCP/IP协议,建议删除所有的网卡驱动和TCP/IP协议。

重新安装一下网卡驱动,并设置好TCP/IP协议。一个网卡对应一个TCP/IP协议。

3)服务器上安装了某种防火墙程序,影响了QQ通讯,关闭这些程序试试。

11、设置MSN Messenger代理

菜单"工具"->"选项"->"连接":

选择"我使用代理服务器",类型选择SOCKS5,服务器填本地代理服务器的IP地址,端口1080,其他不填。

12、设置聊天室代理(基于Java)

因为这类聊天室是用java写的(如网易聊天室 chat163com),需要设置java虚拟机的socks代理,可以通过 http://wwwyoungzsoftcom/tools/setjavaproxyhtml 来设置java虚拟机的socks代理。

13、设置语音聊天室、可乐吧代理

大部分网站提供的语音聊天都没有设置代理的功能,需要在客户端安装SocksCap32,将语音聊天软件或者其载体(IE)加入到SocksCap32里。

首先按照28 http://sockscapyoungzsoftcom 上介绍的sockscap32的使用方法,下载sockscap32,设置好sockscap32。

然后找到IE的执行文件目录,将浏览器(如:iexplorerexe)拖到sockscap32里面。

打开IE菜单“工具”->“Internet选项”->“连接”:取消代理服务器选项(注意是取消“为LAN使用代理服务器”)

从SocksCap32里启动IE,注意一定要从SocksCap32里启动IE,否则没有效果。

然后在IE里输入语言聊天网站就可以进行语言聊天和可乐吧了。

详细的设置方法请看 28 或访问 http://sockscapyoungzsoftcom

14、设置NetMeeting代理

NetMeeting没有设置代理的功能,需要在客户端安装SocksCap32,将NetMeeting加入到SocksCap32里。

详细的使用方法请看 28 或访问 http://sockscapyoungzsoftcom

15、设置NetTerm上BBS站点

菜单"File"->"Phone Directory"。在列表中选择一项你想连接的BBS。比如bbsexecpccom。这时下面的信息显示为:Host Name为bbsexecpccom,Host/IP为空,Telnet Port为23。在Host/IP里填写代理服务器地址,就可以了。单击"Connect"按钮,这时蓝色显示屏上会出现: CCProxy Telnet>CCProxy 等提示信息,输入open bbsexecpccom,敲"Enter"键,就可以登陆bbsexecpccom了。

如果不想每次都输入open bbsexecpccom,你需要在按照这样的步骤来做:

1)用Notepad编辑一个文本文件。

如果登陆bbsexecpccom,文本的内容为:

output "open bbsexecpccom ^M"

如果登录bbstsinghuaeducn,文本的内容为:

output "bbstsinghuaeducn ^M"

2)将这个文件保存到NetTerm的安装目录。

3)打开"Phone Directory"对话框里选择对应的登陆服务器,选择"Select Logon Script","Select"刚才保存的文件,"OK"。

16、设置网络蚂蚁代理

菜单"选项/Option"->"设置/Preferences",弹出设置对话框,选择"代理/Proxy"一页,在列表框里选择"直接连接/Direct connection",取消" HTTP默认值/Default for HTTP"和" FTP默认值/Default for FTP"的选择;点击"添加/Add",在"名称/Name"随便填一个什么名称(如CCProxy),"地址/Addr"填上代理服务器地址,"端口/Port"填上1080,"类型/Type"选择Socks5(若需认证则填上用户名和口令),确定;再选定刚刚添加的"CCProxy",选中"HTTP默认值/Default for Http"、"FTP默认值/Default for FTP"和"所有任务都使用默认代理/User default proxy for all jobs",确定。

17、设置网际快车FlashGet代理

"工具"->"选项"->"代理服务器"->"添加",在名称里写上ccproxy,类型选Socks5->"确定"->在"ccproxy"一行的"Http缺省"和"Ftp缺省"两列打勾,在"所有的任务均使用缺省的代理服务器"前打勾。

18、设置联众游戏代理(类似的还有中国游戏中心、基地城市等)

运行联众游戏,弹出"选择连接站点"对话框->"设置代理服务器":

在"通过代理服务器(Proxy)连接Internet"前打勾,在"代理服务器地址"里填上代理服务器地址,端口为1080,选择"使用Socks5协议",其他为空。

19、设置客户机联网游戏CS、石器时代、三国等代理

这类软件本身没有设置代理的功能,就只能求助于NEC的e-Border,需要在客户端安装e-Border。

http://extendhkhicn/%7Edzc/(猎手与蚂蚁收藏馆)上有完整的NEC e-Border Client 211 的解决方法和程序下载(包括汉化版)。

需要注意的是客户端的网络属性 -> TCP/IP属性里一定要设置DNS,地址填代理服务器地址。服务器上的CCProxy设置里要选择DNS服务。

e-Border简单设置方法:

在客户端安装e-Border Client, 打开e-Border设置界面,在General一页,有三个图标,有一个"Setup Wizard"

点击"Setup Wizard" -> "e-Border Client Setup Wizard" -> 选择 "I want to set up the client" -> 下一步 -> 选择 "I have one server" -> 下一步 -> 在 Name 里填上代理服务器地址,在Port里填上 1080 -> 下一步 ->选择 "Does not require authenication" -> 下一步 -> 选择"Proxy All" -> 完成。

注意:客户端要设置DNS指向代理服务器。

20、设置RealPlayer代理(中、英文版)

中文版RealPlayer代理设置

菜单“视图”->“首选项”,在“传输”一页(注意,不要选“使用指定的 UDP 端口”):

上图选RTSP 设置:

在图一中选“PNA 设置”:

菜单“视图”->“首选项”,在“代理服务器”一页(注意,不要选“使用 PNA 代理服务器”):

英文版RealPlayer代理设置:

菜单“View”->“Preferences”,在“Transport”一页(注意,不要选“User specific UDP port”):

(图一)

上图选RTSP Settings:

在图一中选“PNA Settings”:

菜单“View”->“Preferences”,在“Proxy”一页(注意,不要选“Use PNA Proxy”):

21、设置Media Player代理

MediaPlayer 70以上版本

菜单“工具”->“选项”,在“网络”一页:

(图一)

从上图的“代理服务器设置”下的列表中,双击HTTP协议:

(图二)

在图一中双击MMS协议:

(图三)

注意:图二和图三是不同的,端口不同,一个是HTTP设置808端口,一个是MMS设置1080端口。

22、通过内部电话线拨号到代理服务器的IE设置

IE菜单“工具”->“Internet 选项”:

点击上图中的“设置”,注意是“设置”,不是“局域网设置”:

点击上图中的第一个“高级”:

23、设置Norton AntiVirus在线更新病毒库代理

首先在IE里设置好http代理,打开Norton AntiVirus的LiveUpdate,

弹出"Live Update"对话框,单击对话框上的"configure/配置"按钮,

或弹出"LiveUpdate 配置"对话框,

可以直接按上图指定代理;也可以使用:在"ISP"选项卡里选择第一项"控制面板中的Internet选项",在"Proxy"选项卡里选择第三项"使用Internet Explorer中的代理设置" 。

24、设置金山毒霸在线升级代理

菜单"工具" -> "升级设置" -> 选择"使用socket5代理服务器" -> "设置" -> "服务器地址"填代理服务器地址 ->"端口"填1080

金山毒霸菜单“工具”->“更新金山毒霸”:

点击上图中的“下一步”:

点击上图中的“代理设置”:

点击上图中的“确定”,继续“下一步”即可。

有2点注意:

1)要注意,下载地址很多,最好先使用本机拨号升级,测试那个网址最快,记住它,然后在设置好代理服务器以后,问你选择那个地址,请将光标落在你记下来的网址上,然后继续,这样速度更快。

2)若提示“用户验证失败”的错误,表示该软件可能没有花money 购买。

25、设置瑞星升级代理

“设置”->“设置网络配置”:

26、设置KV3000升级代理

KV3000的设置对话框:

如果KV3000安装在服务器上,需要注意,要取消KV3000的网页监视功能,否则会影响代理服务器对缓存的读取:

27、杀毒软件和防火墙推荐

我们对市面上的杀毒软件进行了一些测试,发现下列软件适合和CCProxy配合使用,特推荐给广大用户。

Norton 2001 或者更高版本

瑞星增强版v1425或者更高版本

KV3000或者更高版本

说明:其他品牌,我们暂时不推荐和CCProxy一起使用。

天网防火墙v25设置

天网防火墙v25或者更高版本

安装天网防火墙后,运行CCProxy,会弹出如下的对话框:

请选择“该程序以后都按照这次的操作运行”,以保证CCProxy能通过天网防火墙。

其它品牌的防火墙软件,我们暂时不推荐和CCProxy一起使用。

28、其它软件本身没有代理设置的代理设置

1)如果这些软件本身有代理设置选项(一般在网络设置或者系统设置里),就可以参照相应协议和端口进行设置。

2)如果这些软件本身没有代理设置,可以在客户端安装NEC公司SocksCap32,将这些软件加入到SocksCap32里。

SocksCap的具体设置方法和下载地址请看http://sockscapyoungzsoftcom

SocksCap 介绍

SocksCap是NEC公司开发的一个免费软件,可以使得某些没有提供代理设置的客户端软件能够通过它来连接Internet。它就象一个帽子一样,可以盖住客户端软件,捕捉他们的网络连接,然后转向代理服务器。

SocksCap的下载地址:

http://wwwsocksneccom/02208448/sc32r220exe

SocksCap的应用范围

· 如果你设置了IE代理,结果还是不能进入某些聊天室或者语音聊天室。

· 如果你想用NetMeeting的Internet功能。

· 如果你想用IP电话软件。

某些没有代理服务器设置功能的客户端软件。

SocksCap的运行环境和安装步骤(以英文版为例,可以从网上搜索下载汉化版)

· 在服务器上安装一个支持Socks5代理的代理服务器,如CCProxy。

· 在遇到上述问题的客户端机器上安装SocksCap程序。

· 安装SocksCap后,会立即提示是否要进行设置,选择进行设置。弹出"SocksCap Settings"对话框,在"Server"->"SOCKS Server:"处填写代理服务器地址,"Port"填1080。在"Protocol"里选择"SOCKS Version 5",在"Name Resolution"里选择"Resolve all names remote"

注意:如果安装SocksCap后,没有自动弹出"SocksCap Settings"对话框。可以从SocksCap的菜单"File"中选择"Settings"

怎样使客户端软件通过SocksCap访问Internet

我们以Outlook Express为例:

[1] 首先生成一个Outlook Express的桌面快捷方式。

[2] 运行SocksCap,将桌面上的Outlook Express的快捷方式拖到SocksCap里。(见图一)

[3] 这时弹出一个菜单,选择"New application profile"。(见图二)

[4] 弹出"New Application Profile"对话框,直接选择确定。(见图三)

[5] 在SocksCap里面会出现一个"Outlook Express"图标。(见图四)

[6] 双击SocksCap里面的"Outlook Express"图标,将会启动Outlook Express,这时Outlook的所有网络连接都会通过SocksCap自动通过代理访问互联网。

总结起来,Outlook访问Internet的过程就是这样的:Outlook -> SocksCap -> Socks 5代理(CCProxy) -> Internet。

注意事项:以后每次需要通过SocksCap访问代理服务器,都需要先启动SocksCap,然后双击其中的图标来启动Outlook(若最小化图标,则右键点击该图标再左点需要启动的软件即可),这样Outlook才能访问互联网,而不是直接运行Outlook。

同样,如果你要通过IE进入某些聊天室,也可以将IE的快捷方式拖到SocksCap里,然后从SocksCap里启动IE;如果要用NetMeeting,就将NetMeeting的快捷方式拖到SocksCap里等等。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Winsock完成端口模型中如何使用不阻塞的gethostbyname,用于Socks5代理服务器,需要远程解析地址

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情