1

フラグが設定された winsock 関数GetNameInfoW()に相当する .NET はありますか? NI_NOFQDN説明のためのMSDNドキュメントとしてGetNameInfoW

NI_NOFQDN フラグを設定すると、ローカル ホストの相対識別名 (RDN) のみが pNodeBuffer パラメータに返されます。

私が見つけることができる最も近いものは、ホストの完全修飾ドメイン名をSystem.Net.Dns.GetHostEntry()返すです。修飾されていないホスト名が必要なだけです。IPHostEntryHostName

たとえば、IP アドレス "xxxx" が FQDN "foohost.company.domain.com" に解決される場合、.net を指定することで "foohost" を取得できますがGetNameInfoW()NI_NOFQDN.NET には同等のものはないようです。GetNameInfoW()カバーの下で NetBIOS や LDAP を行っているのか、それとも何か他のことを行っているのかはわかりません。.NET で同じことを行う方法について何か考えはありますか?

4

2 に答える 2

1

コンピューターに複数のIPアドレスがある場合は、複数のホスト名を使用することもできます(このコンテキストでは、完全に修飾されているかどうかは関係ありません)。

「コンピューター名」が必要な場合は、過去に「Environment.MachineName」を使用しました。これは、技術的にはボックスのNetBIOS名を返しますが、少なくともIP構成に依存しません。

于 2009-02-19T07:36:26.470 に答える
1

コンピュータの名前、またはコンピュータの IP の DNS 名を取得しようとしていますか (異なる場合もあります)。本当に GetNameInfoW() を使用したい場合は、いつでも .NET から Pinvoke を使用できます。

編集:これはハックかもしれませんが、System.Net.Dns.GetHostEntry() の結果を使用して string.Split('.') を実行し、インデックス 0 を非修飾名として使用できますか?

于 2009-02-18T16:29:49.817 に答える