[解決済み] C#/.NETでローカルマシンのFQDNを見つけるには?
質問
C#でローカルマシンのFQDNを取得するにはどうすればよいですか?
どのように解決するのですか?
注意: この解決策は、.NET 2.0 (およびそれ以降) のフレームワークをターゲットにしている場合にのみ機能します。
using System;
using System.Net;
using System.Net.NetworkInformation;
//...
public static string GetFQDN()
{
string domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName;
string hostName = Dns.GetHostName();
domainName = "." + domainName;
if(!hostName.EndsWith(domainName)) // if hostname does not already include domain name
{
hostName += domainName; // add the domain name part
}
return hostName; // return the fully qualified name
}
アップデイト
多くの方からのコメントで サムの回答 の方がより簡潔であるという意見が多かったので、回答にコメントを加えることにしました。
最も重要なことは、私が与えたコードが と同等ではないことです。 を次のコードに置き換えることです。
Dns.GetHostEntry("LocalHost").HostName
マシンがネットワークに接続され、ドメインの一部である場合の一般的なケースでは、両方の方法は一般的に同じ結果を生成しますが、他のシナリオでは結果が異なります。
出力が異なるシナリオは、マシンがドメインの一部でない場合です。この場合
Dns.GetHostEntry("LocalHost").HostName
は
localhost
を返しますが
GetFQDN()
メソッドはホストの NETBIOS 名を返します。
この区別は、マシンの FQDN を見つける目的が情報を記録すること、またはレポートを生成することである場合に重要です。ほとんどの場合、私は、特定のマシンに情報をマッピングするために、ログまたはレポートでこの方法を使用してきました。もし、マシンがネットワークに接続されていない場合は
localhost
の識別子は役に立ちませんが、名前は必要な情報を与えてくれます。
ですから、最終的には、どの方法が自分のアプリケーションに適しているか、どんな結果を必要とするかによって、各ユーザーに任されることになります。しかし、この答えが十分に簡潔でないから間違っていると言うのは、せいぜい表面的なものです。
出力が異なるであろう例をご覧ください。 http://ideone.com/q4S4I0
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] .NETアプリケーションを強制的に管理者として実行させるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する