0

を介してシステムに接続するデバイスに一意のIPアドレス(ローカル)を割り当てる必要があります。USB。実際に割り当てることは、デバイスにIPが何であるかを伝えることによって、RS232を介して行います(尋ねないでください!)。

どちらを使用するかをデバイスに指示するために、ローカルPCに対して使用可能なアドレスを何らかの方法で見つけたいと思います。C#で使用可能なアドレスを列挙または検索する方法はありますか?他のデバイスとの衝突の可能性がある場合に備えて、単に固定のものを使用したくありません。

ここで検索を行ったところ、現在のIP、または既存のデバイスのIPを見つけたいと思っている人はたくさんいますが、使用可能な一意のデバイスを生成することについてはあまりわかりません。

あなたが私に与えることができるどんな援助にも感謝します。

4

3 に答える 3

2

静的IPアドレスを割り当てることは(pingを実行する場合でも)悪い考えです。割り当てたIPアドレスが、たまたまオフラインになっているデバイスに割り当てられている場合はどうなりますか?

可能であればDHCPを使用し、DHCPからIPアドレスを取得できない場合は、何に割り当てるかについてユーザーにプロンプ​​トを表示することを検討してください。

DHCPクライアント用のネイティブC#ライブラリについては知りませんが、pinvokeを使用すると、目的のライブラリが得られます。サンプルコード(テストされていません)は、http://www.ianatkinson.net/computing/dhcpcsharp.htmにあります。

于 2012-04-16T10:31:06.727 に答える
1

さて、それほど洗練されたものではありませんが、最も低いものから始めてipsにpingを実行し、応答しない最初のipsを選択してみませんか?

于 2012-04-16T09:49:54.027 に答える
1

http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocolから

動的ホスト構成プロトコル(DHCP)は、インターネットプロトコル(IP)ネットワーク上のホスト用のネットワーク構成プロトコルです。IPネットワークに接続されているコンピューターは、他のホストと通信する前に構成する必要があります。必要な最も重要な情報は、IPアドレス、およびデフォルトルートとルーティングプレフィックスです。DHCPは、ネットワーク管理者による手動タスクを排除します。また、ネットワークに接続されているデバイスの中央データベースを提供し、重複するリソース割り当てを排除します。DHCPは、IPアドレスに加えて、他の構成情報、特にローカルドメインネームサーバー(DNS)、ネットワークブートサーバー、または他のサービスホストのIPアドレスも提供します。DHCPはIPv4とIPv6に使用されます。どちらのバージョンもほとんど同じ目的を果たしますが、IPv4とIPv6のプロトコルの詳細は十分に異なるため、別々のプロトコルと見なすことができます。[1] アドレス構成にDHCPを使用しないホストは、他の構成情報を取得するためにDHCPを使用する場合があります。または、IPv6ホストはステートレスアドレス自動構成を使用する場合があります。IPv4ホストは、リンクローカルアドレス指定を使用して、制限されたローカル接続を実現できます。

于 2012-04-16T09:57:24.790 に答える