服务器端如何拦截某个客户端的TCP请求

IE11下面经常卡到爆 2012-06-13 09:36:04
运行环境:程序是运行于服务器上的Win32服务

现有若干客户端上的某软件PS_Client,向该服务器上服务程序PS_Server发送TCP请求(目标端口都是一样的)

现在要求在服务端侦听此端口,并且按照一定的条件来决定是否放行该数据包,以便让PS_Server作出响应。
不符合条件的包,直接丢弃。此时PS_Server不需要作出任何响应,对它来说就像从来没有收到个这个请求一样。
反之,将截获的数据包转发至PS_Server,让其对源客户端作出响应。

目前只能监视到收发的包,但不知道怎么实现拦截

PS_Client和PS_Server都是第三方程序,目前没有可用的API

有人说用WinDriver,也有人说有NDSI驱动,有点晕了,个人觉得用Socket Hook应该可以,望指路,谢过~~
...全文
700 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个规则是动态的,是受控于另外一台服务器的业务处理的,就算把两台服务器搞到一起也没什么用
jackyjkchen 2012-06-13
  • 打赏
  • 举报
回复
也就是说让你写个定时定点根据某种规则放行或阻塞某个包的防火墙呗

先看看现有防火墙产品有没有你类似的功能,没有的话就相当于自己实现防火墙,防火墙的实现确实是比较低层要做到驱动一级的

如果你能找到类似功能的防火墙,宁可修改自己的规则去匹配防火墙,这才是简单的犯法
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

晕看反了,你是说指定的IP才处理是吧,一样的,其他IP全禁止,指定IP放白名单
[/Quote]

如果这样就好了,可问题是按照一定的条件,并不是依据IP来的(其实程序里要取的是机器名+DNS域)
这个条件其实是程序需要通过WS查询另外的服务器来的,上面只是为了简化描述所以隐去了。针对某个客户端而言,并不是一定就是阻止,或者放行。
有可能9点的时候需要阻止,10点的时候客户端又打开了PS_Client,而这个时候又需要放行。
jackyjkchen 2012-06-13
  • 打赏
  • 举报
回复
晕看反了,你是说指定的IP才处理是吧,一样的,其他IP全禁止,指定IP放白名单
jackyjkchen 2012-06-13
  • 打赏
  • 举报
回复
简单说就是屏蔽罗

我跟你说,这种事情最适合防火墙而不是Server端应用去做

直接在防火墙里把那个ip给禁了……程序一行不用改

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧