HTTPを使用して、C#でデバイスの埋め込みコントロールソフトウェアを制御するにはどうすればよいですか?
-
03-10-2019 - |
質問
デバイスのIPアドレスをWebブラウザーに入力することにより、埋め込まれたユーザーコントロールを備えたハードウェアがあります。デバイスは、X-Over Ethernet Cableと静的IPを介してPCに直接接続されています。デバイスの制御をC#アプリケーションに統合する必要があります。
私の考えは、PCとデバイス間のトラフィックを監視するためにパケットスニファーを使用し、同時にWebブラウザーでデバイスのコントロールを実行しています。次に、私のPCが送信しているパケットがその時点で使用しているコントロールに対応するパケットを見つけます。次に、C#アプリケーションでHTTPまたはTCPパケットのクラスを作成し、ソケットクラスを使用してデバイスに送信できます。
ただし、ネットワークプロトコルではあまり経験がないので、Wiresharkを使用してPCとデバイス間のトラフィックを監視している場合、どのパケットが何をするかを見つけるときにどこから始めればよいかわかりません。誰かがアイデアを持っていますか?私は何にもオープンです。ありがとう!!
編集:私のデバイスが何であるかを正確に説明するのは困難ですが、基本的には精巧なセンサーであり、通常は産業用途で使用されるため、Modbusを使用している可能性があります。パケットを調べて使用されているプロトコルをどのように知ることができるか知っていますか? PCからデバイスに送信されているパケットが1 HTTPパケットのパターンで発生し、5つのTCPパケットが発生し、ブラウザでコントロールが開いている限り、同じシーケンスを繰り返していることに気付きました(Wiresharkを使用)。何が起こっているのかをよりよく理解できるリソースはありますか?
解決
これがブラウザの制御されている場合、私の最初の考えは、デバイスがブラウザに送信するWebページを調べて、コントロールを操作するときにブラウザが何をするかを確認することです。
これを不可能にする(フラッシュベースのコントロールシステムなど)私が欠けているものはありますか? HTMLまたはJavaScript、およびHTMLがAjaxのようにもう少し洗練されたものを投稿するだけで行われた場合、インターフェイスを簡単に解決するのは比較的簡単です。
他のヒント
デバイスに応じて、Modbusプロトコルのバリアントを使用します(http://en.wikipedia.org/wiki/modbus)または何かが不明瞭で推進されます。
最善のことは、パケットの類似性を認識できるまで、同じコマンドをデバイスに何度も何度も送信し続けることです。
それが適切である場合、それはおそらくコマンド/データペアまたは場合によってはXML BLOBのような単純なものになるでしょう。あなたが本当に不運であれば、それは圧縮またはエンコードされますが、ゲームや現金をハッキングしていない限り、これはほとんどありません。
デバイスのメーカーに仕様を提供できるかどうかを尋ねることもよく機能します。