ネットワークルーターがC / C ++を使用してDHCPをサポートしているかどうかを手順で検出する方法はありますか?
-
05-07-2019 - |
質問
アプリケーションがネットワーク上のデバイスにネットワークルーターのDHCPサーバーからIPアドレスを取得するように指示するシナリオがあります。 DHCPサーバーが利用できない場合、デバイスの動作は不安定になります。ネットワークルーターがDHCPをサポートしているかどうかを手順で検出する方法はありますか?または、これは、デバイスがDHCPサーバーからIPアドレスを取得しようとするときに実行する必要があるものですか?
解決
デバイス上のDHCPクライアントはまさにそれを行っています。まあ、ほぼそれ。
DHCP DISCOVERYメッセージはリンク上でブロードキャストされます。次に、この特定のMACアドレスを提供するDHCPサーバーがある場合、各サーバーはそのプールからIPアドレスを予約し、OFFERメッセージで応答します。次にクライアントは、「バインド」するサーバーを選択します。 REQUESTメッセージを発行します。サーバーは、承認されたIPアドレスのリースをACKメッセージで確認します。
クライアントは「利用不可」を発見します;オファーを待つだけでタイムアウトすることによるDHCPサーバーの数。
DHCPing プロジェクトをご覧ください。あなたにいくつかのアイデアを与えるかもしれません。
DHCP RFCへのリンク:
RFC 2131、動的ホスト構成プロトコル
RFC 2132、DHCPオプションおよびBOOTPベンダー拡張機能
他のヒント
所属していません StackOverflow