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

时间:2014-04-03 13:22:13

标签: 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.33.1) ------------------ Device B (192.168.33.13)
Port Y (192.168.33.2) ------------------ Device A (192.168.33.12)

我考虑过将设备/端口放在不同的子网上,但我会更喜欢能够说“你需要将设备C移动到位置N”,而不是“我可以”什么都看不见!“。

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

1 个答案:

答案 0 :(得分:1)

据推测,您实际上是以某种方式,形状或形式与这些设备交谈,迟早您会有一个Socket对象(您直接创建的对象或您的对象)可以从更高级别的对象获取,例如TcpClient' Client属性。

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

  

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