【问题标题】:How to determine from a remote host which local IP sent a request如何从远程主机确定哪个本地 IP 发送了请求
【发布时间】:2011-10-07 16:40:09
【问题描述】:

假设我有 1 个由多台计算机通过路由器 Wifi Dlink 或 NAT 设备连接到 Internet 的网络。在另一端,一台直接连接到互联网的计算机为连接的客户端提供一些服务。一旦本地网络的一台计算机通过互联网连接到另一端的直连计算机,我想在直连计算机上通过 Socket 或其他方式确定本地网络的哪台计算机发送了请求.这可能吗?

例如,我知道某些 Internet 服务提供商会限制可能连接到 Internet 的计算机的数量,即使计算机位于路由器后面。这意味着互联网服务提供商可以通过这种方式确定路由器后面的哪台计算机执行了连接请求......并将连接限制在所有其他计算机上。这要怎么解释?

【问题讨论】:

  • 如果没有客户端将此信息发送到服务器,您将无法执行此操作... ISP 所做的是完全不同的事情 - 因为您使用某些调制解调器/路由器,他们会从调制解调器/获取该信息/路由器...
  • 好的..我怎样才能从调制解调器/路由器中得到这个呢?
  • 您不能 - 通常用于此通信的协议是安全的(机制因 ISP 和远程调制解调器/路由器而异)。目标到底是什么?
  • 目标?我有来自第三方的客户端软件,除了数据之外,默认情况下不会将信息发送到服务器。有没有办法设置路由器,使每个客户端都直接连接到互联网并且客户端不在 NAT 后面?还是我应该简单地删除路由器来实现这一点?
  • 是的 - 您可以配置路由器/调制解调器来实现这一点,尽管选项和结果很大程度上取决于您的特定路由器/调制解调器和 ISP...

标签: c# sockets networking network-programming network-protocols


【解决方案1】:

无法直接从对象中找到它。如果您需要知道发送系统的本地 IP 地址,我建议您让客户端将信息发送到服务器,这是它连接到服务器后的第一件事。因此,在接受连接后,服务器应该期待一组数据,其中包含刚刚连接的客户端发送的本地 IP 信息。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    相关资源
    最近更新 更多