-4

C# アプリケーション内からコマンド プロンプト コマンドを実行する方法はありますか? コンピューターの名前が必要ですが、アクセスできる唯一の方法は、cmd プロンプトに入力することです。

nslookup myIPAdress

私のIPが134.123.12.12だった場合のように、次のように入力します。

nslookup 134.123.12.12

Name:の後に返される値は、私が求めているものです。ac# コンソール アプリケーションでこれを取得するにはどうすればよいですか?

私はすでに使用してみました

string name1 = Environment.MachineName;
Console.WriteLine(name1);
string name2 = System.Net.Dns.GetHostName();
Console.WriteLine(name2);
string name3 = System.Net.Dns.GetHostEntry("localhost").HostName;
Console.WriteLine(name3);
string name4 =DNSLookup("134.123.12.12");
string name5 = System.Net.Dns.GetHostEntry(134.123.12.12).HostName;
Console.WriteLine(name5);

しかし、これらのどれも正しい名前を生成しません。コンピューターのサーバー/ホスト名を提供するだけです。何か案は?

4

3 に答える 3

1

私はあなたのために働くかもしれないいくつかのコードを手に入れました。

ここでは、インターネット名が表示されます。

string name = System.Net.Dns.GetHostEntry("192.168.1.254").HostName;
Console.WriteLine(name);
Console.ReadLine();

そして、ここにあなたのIPアドレスが表示されます:

System.Net.IPHostEntry host;
string localIP = "?";
host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach (System.Net.IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
        localIP = ip.ToString();
        Console.WriteLine(localIP);
    }
}
Console.ReadLine();
return;

これは最善の方法ではないかもしれませんが、うまくいきます。

お役に立てれば!!

于 2013-07-31T14:06:13.557 に答える