gpt4 book ai didi

networking - 根据 ipaddress 唯一识别路由器后面的机器

转载 作者:行者123 更新时间:2023-12-03 20:29:16 25 4
gpt4 key购买 nike

先介绍一些背景。我在局域网中的每台机器上都安装了 .net 客户端代理。他们也在同一个局域网上与我的中央服务器 [网站] 交互。

弄清楚哪些机器可以相互通信对我的网站来说很重要。例如,如果不配置路由器等,一个子网的机器不能直接与另一个子网的机器通信。但是同一子网中的机器应该能够直接相互通信。

我面临的问题是局域网设置如图 1 所示。

Figure 1

因为 Comp1、Comp2 和 Comp3 在路由器后面,所以它们的 IP 地址为 192.168.1.2 到 192.168.1.4。我在这些机器上的客户端代理向服务器报告相同的 ipaddress。但是,机器 Comp4、Comp5 也有相同的 IP 地址。

因此,就我的服务器而言,有 2 台机器具有相同的 ipaddress。不仅如此,因为所有机器的子网掩码都是 255.255.255.0,我的服务器被误认为 Comp1 可以直接与 Comp5 对话,这是不可能的。

那么,我该如何解决呢?我需要在我的客户端或服务器中更改什么,以便我可以支持这种情况。这两个是我唯一能控制的东西。

最佳答案

EDIT: Seems that the network diagram is over simplified and there could be multiple router/subnet levels. My original answer will not handle this scenario. Also, with the restriction of modifying only the client app or server app and not tampering with the routers and firewalls makes it more difficult.

EDIT2: Using 'arp -a' you can extract the MAC address of the router. If the client apps can manage to do this then the puzzle is solved!

客户端应用程序知道本地机器地址并将其传递给服务器应用程序。

服务器应用程序知道连接进入时的远程地址。这可能是机器地址或路由器地址。

根据这两个值,您可以计算出您的要求。

例如:

Server app receives connection from 10.10.10.2 with client supplying 192.168.1.2

Server app receives connection from 10.10.10.3 with client supplying 192.168.1.3

“远程地址”区分子网。

因此,您需要弄清楚的是如何提取客户端连接的远程地址。如果您正在为您的服务器应用程序使用任何流行的网络技术,那么这很容易。

关于networking - 根据 ipaddress 唯一识别路由器后面的机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689728/

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