社区
网络编程
帖子详情
如何在 client 与 server 建立“连接”之前,对 client 的 ip 进行验证?如果非法,则不让连接?
sunkill
2007-09-05 04:01:59
如题
...全文
305
19
打赏
收藏
如何在 client 与 server 建立“连接”之前,对 client 的 ip 进行验证?如果非法,则不让连接?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
2025‘someday
2007-09-09
打赏
举报
回复
看看我的BLOG:
http://blog.csdn.net/wang921718/archive/2007/09/04/1772396.aspx
希望对你有所帮助
WinEggDrop
2007-09-09
打赏
举报
回复
AcceptSocket = WSAAccept(ListenSocket, (SOCKADDR *)&client, &nSize,&ConditionFunc,0);
看WSAAcept的第四个参数,
INT CALLBACK ConditionFunc(LPWSABUF lpCallerId,LPWSABUF lpCallerData,LPQOS lpSQOS,LPQOS lpGQOS,LPWSABUF lpCalleeId,LPWSABUF lpCalleeData,GROUP FAR *g,DWORD_PTR dwCallbackData)
{
struct sockaddr_in ClientAddress;
CopyMemory((void *)&ClientAddress,(void *)lpCallerId->buf,sizeof(ClientAddress));
char ClientIP[32] = {0};
ZeroMemory(ClientIP,sizeof(ClientIP));
strncpy(ClientIP,inet_ntoa(ClientAddress.sin_addr),sizeof(ClientIP) - 1);
这里增加代码是否可接受的IP,如果不是,return CF_REJECT;如果是允许, return CF_ACCEPT;
}
不知道这是不是你想要的
}
toxyboy
2007-09-08
打赏
举报
回复
帮你up,一点accept触发了,也就说明了connect已经成功了。我想如果要改,也只能该ws2_32.lib,看看在接收到连接请求之后,accept之前能否做到?windows提供了用户的自定义接口层,因该可以吧,没深入研究过。
ifeelhappy
2007-09-07
打赏
举报
回复
这个在应用层应该不可以吧,因为你的程序肯定是要进入监听状态的啊,不然合法程序也没法connect上了。你进入监听状态,就必须会看到非法客户的连接,至于接受不接受这是accept的事情,所以,我期待这个问题的答案
ilovechao1314
2007-09-06
打赏
举报
回复
拦截TCP报文好像要写个虚拟驱动吧?好难
zaodt
2007-09-06
打赏
举报
回复
Up
sunkill
2007-09-06
打赏
举报
回复
在Winsock环境下,只能通过拦截TCP报文,比如象防火墙那样去实现,而不能在应用层实现。
我的意思,就是想直接拦截TCP报文,不能在应用层实现?
只能通过写一个“驱动”来实现?
redex
2007-09-06
打赏
举报
回复
得在tcp层拦截,直接使用accept是不行的
ouyh12345
2007-09-06
打赏
举报
回复
得在tcp层拦截,直接使用accept是不行的
bestgood
2007-09-06
打赏
举报
回复
用放火墙或写个驱动吧!
sunkill
2007-09-06
打赏
举报
回复
我想实现的是:
在建立连接之前,就对“IP地址”进行判断,如果“IP地址不合法”,则不让它建立连接。
我看到通常有些的人做法是 一个连接连上来后,再对“IP地址”进行判断,非法则断开连接。
而我现在想实现的是“在连接未建立之前,就对它进行阻止”。
僵哥
2007-09-05
打赏
举报
回复
AcceptEx同样也已经执行完了Accept。
贵子潘
2007-09-05
打赏
举报
回复
AcceptEx里可以验证,非法的连接,直接close
僵哥
2007-09-05
打赏
举报
回复
在Winsock环境下,只能通过拦截TCP报文,比如象防火墙那样去实现,而不能在应用层实现。
Yofoo
2007-09-05
打赏
举报
回复
在accept前检查
ilovechao1314
2007-09-05
打赏
举报
回复
不明白什么意思了,lz给解释下吧,他说的应该是在socket这层吧,
arong1234
2007-09-05
打赏
举报
回复
socket层没有办法吧
ilovechao1314
2007-09-05
打赏
举报
回复
用getsockopt这个能得到ip,再进行ip段验证,不知道是不是这个意思
珍惜生命远离CPP
2007-09-05
打赏
举报
回复
防火墙,最方便
要不在程序accept调用之后检查IP然后 继续或者关掉socket
SSL/TLS(4): TLS
连接
握手过程详细分析
SSL/TLS(1):基本概念通俗解释 SSL/TLS (2):通俗解释SSL/TLS为什么安全 SSL/TLS(3): CA证书解释 前言 在前面的文章中,我们讲述了SSL/TLS相关概念和CA证书,本文通过wireshark抓取日志,来查看一下TLS的
连接
握手流程。握手的含义就是当
client
与
server
建立
连接
后,
client
和
server
需要针对TLS
进行
握手动作,握手的目的是为了商量加密算法和一些初始化,只有握手成功后,后面的对话才能加密和解密。 测试工具 我们以mqtt+TLS
连接
mqtt
掌握时间同步
server
-
client
架构实施
本文还有配套的精品资源,点击获取 简介:时间同步软件对于确保IT系统中服务器间时间的精确同步至关重要,特别是在数据一致性、日志分析、网络安全和审计追踪等方面。本软件通过NTP协议,利用
server
-
client
架构,使得客户端能够从服务器获取准确的时间信息并
进行
调整。本软件可能包含NTP服务器配置、客户端程序、监控工具和日志记录等关键组件。正确配置和使用这些组件,对于维持网...
[SQL
Server
2005/2008]限制(及监控)
建立
连接
的客户端
ip
及db用户
例如:限制某个数据库用户(比如 sa这种高级别的用户),只能从指定的
IP
登陆,这可以做为防止
非法
连接
数据库的最后防线。
C#网络编程:TCP
Client
与TCP
Server
实战详解
TCP(Transmission Control Protocol,传输控制协议)是一种面向
连接
的、可靠的、基于字节流的传输层通信协议。在互联网协议族(Internet Protocol Suite)中,它扮演着重要的角色,确保数据可以准确无误地从源主机传输到目标主机。TCP
Client
类位于.NET框架的命名空间下,是用于
建立
基于TCP协议的网络
连接
的客户端类。通过TCP
Client
类可以实现与远程主机的
连接
,并通过此
连接
发送和接收数据。TCP
Client
。
get_
client
_
ip
获取地址显示0.0.0.0
get_
client
_
ip
()获取
ip
地址,在开启
IP
v6协议的主机上会全部返回0.0.0.0原因是他会把
ip
v6地址认为是
非法
地址而转换成0.0.0.0,而
ip
v4地址在
ip
v6主机上用get_
client
_
ip
()会放回类似::ffff:192.168.1.250这样的形式。解决方法/** * 转换
IP
v6地址为bin * @param string $
ip
返回类型 0 数字 1 返回Fals
网络编程
18,357
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章