-1

明確にするための最終編集-私の環境では、DNSはクライアントごとに1つのレコードのみを保存します。クライアントに複数のNICがある場合、またはサブネットを変更する場合、対応するDHCPレコードが期限切れになるまで元のIPがDNSに登録されます(これは、DHCPがDNSアドレスを登録するAD環境です)。

このシナリオでは、DNSにはクライアント用の誤ったレコードが1つあります。DHCPをクライアント名で照会して、DHCPにリースされているすべてのIPを確認したいと思います。

私が見つけた唯一の可能な解決策は、DHCPからすべてのサブネット情報をダンプして(以下のAPIでサポートされています)、それに対してクエリを実行することですが、複数の人がこのアプリケーションを使用するため、私の環境では実行できません。 DHCPの追加の負担。

DNSまたはDHCPの構成を変更できません。

ありがとう、


これはこの質問に似ていますが、参照されているAPI (ここ)では、IP経由でのみクエリを実行できます。このAPIまたは他のAPIを使用して、ホスト名でDHCPを照会することは可能ですか?(問題は、DNSによってMachineAの古いIPが提供されるため、MachineAによってリースされている他のIPをDHCPサーバーから取得したいということです)。

編集:明確にするために、ホスト名を入力できるプログラムを作成します。次に、DHCPサーバーによって管理されているサブネット内のそのホスト名のすべてのIPについてDHCPサーバーにクエリを実行します。これは、複数のNICが私には役に立たない(ワイヤレス)IPを登録しているマシンの問題を回避するためです。たとえば、DNSの結果はNICA(ワイヤレス)である可能性がありますが、NICB(ワイヤレス)が必要です。

4

2 に答える 2

2

私が知る限り、どの IP アドレスを使用するかという長年の問題に遭遇しました。今日では、多くのコンピュータに複数の NIC があり、一部は仮想、一部はローカルのみ、一部はインターネット アクセスなどがあります。アプリケーションの選択は非常に困難です。ほとんどの場合、アプリケーションがソケットなどをホストする IP を構成項目にするだけです。これは、単純に、アプリケーションが使用する正しいIP アドレスを実際に選択できないためです。たとえば、同じネットワーク アクセスを持つ 2 つの NIC の場合、どちらを選択しますか? アプリケーションを 2 回実行する場合、1 つは NIC 1 を使用し、もう 1 つは NIC 2 を使用する必要があります。(つまり、できません)。

そうは言っても、ニーズに応じて、最適な NIC を探してその IP アドレスを取得できます。たとえば、非ワイヤレス NIC で IPv4 アドレスが必要な場合は、次のようにします。

var ips = from ni
                in NetworkInterface.GetAllNetworkInterfaces()
            where ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet
            from ip in ni.GetIPProperties().UnicastAddresses
            where ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && ip.IsDnsEligible
            select ip;
IPAddress address = ips.First().Address;

...読みやすくするためにエラー チェックを省略しました。要件に適したエラー チェックを適用してください。

アドレスがリンク ローカルかどうか (つまり、ローカル ネットワーク セグメントから通信できるかどうか、つまり、通常は DNS/DHCP ではなく Windows によって自動的に割り当てられるアドレスを意味するかどうか) を確認することもできます。 IPv4 アドレスは 169 と 254 です。

ただし、要件が何であるかを具体的に定義する必要があります。単純に「望ましくないワイヤレス IP」と言うだけでは、どのソリューションが常にニーズに合っているかを判断するための明確で検証可能な基準は提供されません。

于 2013-02-15T21:26:09.387 に答える
0

ネットワーク上でマシンを見つけようとしている場合は、おそらく最初に DNS へのクエリを実行する必要があります。つまり、ネットワーク上に静的IP アドレスを持つマシンを考えてみてください。その名前はネーム サービスのみに登録され、マシンの IP スタックが静的アドレスのみで構成されている場合、DHCP att にはまったく表示されません。

新しいマシンまたは最近変更された IP アドレスが DNS に表示されるまでにどれくらいの時間がかかるかわかりません。ただし、DHCP に別の (新しい) ものがあるかどうかを確認したい場合は、最初に DNS から試した後に DHCP に問い合わせてください。

于 2013-02-15T17:15:41.967 に答える