我的代码在具有多个以太网端口的服务器上运行,这些端口物理连接到特定的物理位置。已知IP的设备插在另一端。我希望能够检测设备是否已更改位置(以警告/责骂用户)。即,这之间的区别:
Port X (192.168.33.1) ------------------ Device A (192.168.33.12)
Port Y (192.168.33.2) ------------------ Device B (192.168.33.13)
和此:
Port X (192.168.33.1) ------------------ Device B (192.168.33.13)
Port Y (192.168.33.2) ------------------ Device A (192.168.33.12)
我考虑过将设备/端口放在不同的子网上,但我会更喜欢能够说“你需要将设备C移动到位置N”,而不是“我可以”什么都看不见!“。
免责声明:我不是网络专家
答案 0 :(得分:1)
据推测,您实际上是以某种方式,形状或形式与这些设备交谈,迟早您会有一个Socket
对象(您直接创建的对象或您的对象)可以从更高级别的对象获取,例如TcpClient
' Client
属性。
一旦您实际使用了套接字,您就可以查询LocalEndPoint
属性并确定您实际用于与远程系统通信的本地IP地址:
通常在调用
LocalEndPoint
方法后设置Bind
属性。如果允许系统分配套接字的本地IP地址和端口号,则在第一次I / O操作后将设置LocalEndPoint
属性。对于面向连接的协议,第一个I / O操作是调用Connect
或Accept
方法。对于无连接协议,第一个I / O操作可以是任何发送或接收呼叫。