gpt4 book ai didi

c++ - 获取传入连接的源IP地址

转载 作者:行者123 更新时间:2023-11-30 19:16:38 25 4
gpt4 key购买 nike

众所周知,TCP 连接是使用 3 次握手协议(protocol)建立的。

我们可以通过这两种方式获取peername。

1. a) connfd = accept(sfd,&addr,&addrlen);
b) int getpeername(connfd,&addr,&addrlen);
2. a) connfd = accept(sfd,&addr,&addrlen);
here struct addr has information about client

假设我们使用了套接字描述符上的 select 。然后,如果有人请求连接,则必须设置套接字描述符。所以我们现在可以使用上面的方法来获取客户端地址。

有没有办法在接受连接之前获取客户端地址因为我们已经知道有些人请求了此连接。

应用:
假设我们不想允许客户端从地址 i.j.k.l 到 i.j.l.m,那么我们可以使用此方法来节省一些资源。

操作系统:Ubuntu
P/语言:C/C++。

编辑:正如人们建议的那样,防火墙就在那里,是的,它在那里,但它适用于下面的示例我们在一台计算机上运行n服务器,每个服务器应排除一些 IP 地址。那么这里如何使用防火墙呢?

最佳答案

Is there a way to get the client address before accepting the connection

没有。

至少从客户的角度来看不是。

Let's we don't want to allow client coming from address i.j.k.l to i.j.l.m

对于此类用例,防火墙系统无处不在。

关于c++ - 获取传入连接的源IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29778761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com