-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 回答
0

您是否尝试使用:

System.Net.Dns.GetHostByAddress("134.123.12.12").HostName
于 2013-07-31T13:34:01.240 回答
0

这将执行您在 /C 之后放置的任何命令。

 string CmndTxt;
 CmndTxt = "/C your command;
 System.Diagnostics.Process.Start("CMD.exe", CmndTxt);

例如:

 string Cmndtxt;
 CmndTxt = "/C ping " + IPtextBox.Text;
 System.Diagnostics.Process.Start("CMD.exe", CmndTxt);
于 2016-11-10T17:37:03.123 回答