通过广播机制获得有效的ip范围后如何确定连接到网络的设备是否为modbus设备或如何自动发现连接到网关的modbus设备的slave id?
问问题
6539 次
2 回答
1
在 Modbus TCP 上下文中,slaveId 不用于标识 Modbus 设备。如果设备支持 Modbus TCP/UDP,则 IpAddress 用于识别 Modbus 设备。
如果您想发现 LAN 中的 Modbus 设备,正如您所提到的,您可以向所有 IP 地址范围发送广播消息。但是,没有预定义的寄存器地址可供轮询。每个 Modbus 设备都可以配置不同的地址位置。
为每个 :502 发送 TCP 连接请求。
然后对于每个连接的设备,例如 Modscan 工具,您可以编写自定义逻辑来扫描每个发现的 Modbus 设备中的所有寄存器。
于 2018-07-26T09:42:40.577 回答
0
您可以尝试使用nmap:
在这里您可以找到要使用的教程。
您还可以使用Metasploit-framework(msfconsole):
- Modbus 客户端实用程序,您可以读取/写入 modus 设备
- Modbus版本扫描器,检测modbus服务
- Modbus find unit ID,它只在modbus TCP/IP下工作,它向所有modbus ID(0-254)发送请求“0x04”并检查响应。
于 2018-09-12T06:57:41.407 回答