DNSサーバの取得 (C#)(F#)
WMIによって管理されている情報からDNSサーバの設定を取得できます。
WMIクラスの使用例
※ManagementClass による取得
var mc = new ManagementClass("Win32_Service");
foreach (var m in mc.GetInstances())
Console.WriteLine(m["Name"]);
※ManagementObjectSearcherによる検索
var query = new ManagementObjectSearcher("SELECT * FROM Win32_Service WHERE State='Running'");
foreach (var o in query.Get())
Console.WriteLine(o["Name"]);
WMIクラスを使用する場合、System.Managementを参照設定で追加する必要があります
C#サンプル
using System; using System.Management; namespace Exsample { class Program { static void Main(string[] args) { var query = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'"; var ms = new ManagementObjectSearcher(query); foreach(var mo in ms.Get()) { var sl = (string[])mo["DNSServerSearchOrder"]; if (sl != null) { foreach (var sv in sl) { Console.WriteLine(sv); } } } Console.WriteLine(); Console.WriteLine("何かのキーを押してください。"); Console.ReadKey(); } } }
F#サンプル
open System open System.Management let query = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'" let ms = new ManagementObjectSearcher(query) for mo in ms.Get() do let sl = mo.["DNSServerSearchOrder"] :?> string [] if sl <> null then for sv in sl do printfn "%s" sv printfn "何かのキーを押してください。" Console.ReadKey() |> ignore
2011.11.02追記
@jsakamoto氏によるF#サンプルコード