C# 检测设备何时更改了物理以太网端口

C# 检测设备何时更改了物理以太网端口,c#,networking,device,C#,Networking,Device,我的代码运行在具有多个以太网端口的服务器上,这些端口通过物理方式连接到特定的物理位置。具有已知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

我的代码运行在具有多个以太网端口的服务器上,这些端口通过物理方式连接到特定的物理位置。具有已知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”,而不是“我什么都看不见!”


免责声明:我不是网络专家

据推测,您实际上是在以某种方式、形状或形式与这些设备交谈,迟早您将拥有一个对象(您直接创建的对象或您可以从更高级别的对象(如“的
客户端
属性)获得的对象)

一旦您实际使用了套接字,您将能够查询属性并确定您实际用于与远程系统通信的本地IP地址:

LocalEndPoint
属性通常在调用
Bind
方法后设置。如果允许系统分配套接字的本地IP地址和端口号,则将在第一次I/O操作后设置
LocalEndPoint
属性。对于面向连接的协议,第一次I/O操作将是c全部连接到
Connect
Accept
方法。对于无连接协议,第一个I/O操作将是任何发送或接收呼叫


谢谢,情况比我描述的稍微复杂一点,但我会看看我是否能尝试一下。