首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取客户端ip地址?

如何获取客户端ip地址?
EN

Stack Overflow用户
提问于 2012-01-22 14:28:14
回答 2查看 7.1K关注 0票数 2

我想知道在socket (java)中如何知道客户端在服务器端的IP地址。假设有一个服务器"S“和两个客户端"A”和"B“。客户端A向我(服务器)发送一些信息,客户端B向我(服务器)发送一些其他信息。我必须将来自A和B的信息存储在不同表中的数据库中。如何区分客户端A和B请求?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-22 14:33:30

每个套接字都有一个getInetAddress()方法,该方法返回与其连接的客户端的IP地址。

票数 8
EN

Stack Overflow用户

发布于 2013-12-25 07:25:56

另一个答案解决了你的核心问题。我只想补充一点,在某些情况下,您得到的IP地址并不能唯一标识真正的端点,即用户的PC。

  • 如果两个用户使用同一系统进行连接,即它是一个多用户系统。
  • 如果用户的PC位于NAT网关之后(因为它有一个专用/站点本地IP地址),则您将获得该网关的IP地址。
  • 它还表示该地址以某种方式被欺骗或劫持...

您无法从服务器端检测到这两种情况。你只需要知道它们,而不是依赖(假设)客户端的IP地址是确定的。

所以..。

如何区分客户端A和B请求?

在上述任何一种情况下,您不能仅通过IP地址来区分A和B。如果在A和B的连接都处于活动状态时查看这两个连接,您会发现这两个连接具有不同的远程端口号。但这些端口号仅在连接期间有效。但是,下次A或B连接时,A可能正在使用B正在使用的远程端口,反之亦然。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8959466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档