4

我有一个带有嵌入式用户控件的硬件,通过在网络浏览器中输入设备的 IP 地址来访问。该设备通过 x-over 以太网电缆和静态 IP 直接连接到我的 PC。我需要将设备的控制集成到我的 C# 应用程序中。

我的想法是使用数据包嗅探器来监控我的 PC 和设备之间的流量,同时在我的网络浏览器中使用设备的控件。然后找出我的 PC 发送的哪些数据包与我当时使用的控件相对应。然后我可以在我的 C# 应用程序中创建一类 HTTP 或 TCP 数据包,并使用 Socket 类将它们发送到设备。

但是,我对网络协议没有太多经验,所以当我使用 Wireshark 监控我的 PC 和设备之间的流量时,我什至不知道从哪里开始找出哪些数据包做了什么。有没有人有任何想法?我对任何事情都持开放态度。谢谢!!

编辑:很难准确解释我的设备是什么,但它基本上是一个复杂的传感器,通常用于工业应用,所以它可能使用我比较熟悉的 Modbus。你知道我如何通过检查数据包来判断正在使用哪个协议吗?我注意到(使用 Wireshark)从我的 PC 发送到设备的数据包以 1 个 HTTP 数据包,然后是 5 个 TCP 数据包的模式发生,并且只要在我的浏览器中打开控件,就会重复相同的序列。是否有任何资源可以让我更好地了解正在发生的事情?

4

2 回答 2

3

如果这是由浏览器控制的,我的第一个想法是检查设备发送到浏览器的网页,并查看在您操作控件时浏览器被指示做什么——这似乎比使用 Wireshark 更容易。

有什么我遗漏的东西使这不可能(例如基于 Flash 的控制系统)?如果它只是使用 HTML 或 Javascript 以及 HTML POST 消息或像 Ajax 之类的更复杂的东西来完成,那么制作界面应该相对容易。

于 2010-09-16T15:57:13.977 回答
2

根据设备的不同,它将使用 modbus 协议的变体 ( http://en.wikipedia.org/wiki/Modbus ) 或一些模糊和专有的东西。

最好的办法是一遍又一遍地向设备发送相同的命令,直到您可以识别数据包中的相似之处。

如果它是专有的,它可能是简单的东西,例如命令/数据对或可能是 XML blob。如果您真的不走运,它将被压缩或编码,但除非您正在破解游戏或自动取款机,否则这不太可能。

询问设备制造商是否可以为您提供规格通常也可以。

于 2010-09-16T15:10:16.253 回答