【问题标题】:Run command prompt commands in c#在 C# 中运行命令提示符命令
【发布时间】:2013-08-01 01:25:12
【问题描述】:

有没有办法从 C# 应用程序中运行命令提示符命令?我需要一台计算机的名称,但我可以访问它的唯一方法是在 cmd 提示符下输入。

nslookup myIPAdress

如果我的 ip 是 134.123.12.12 我会输入;

nslookup 134.123.12.12

它在 Name: 之后返回的值就是我所追求的。我如何在 c# 控制台应用程序中得到这个?

我已经尝试过使用

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);

但是这些都没有产生正确的名称,它们只是给了我计算机的服务器/主机名。有什么想法吗?

【问题讨论】:

  • 关于run command prompt commands from within a C# application google 提供了很多帮助
  • 该值应该是您通过使用 IP 而不是 'localhost' 执行 GetHostEntry 获得的值(就像您对上面的 name3 所做的那样)
  • @Joe GetHostEtry 返回主机名,这不是我要查找的名称。
  • nslookup 就是这样做的。你能发布你看到和期望的具体输出吗?这就是 Name: 应该是的。
  • 我投了反对票,因为标题与问题不匹配,并且显示研究不足。

标签: c# ip-address nslookup


【解决方案1】:

您是否尝试使用:

System.Net.Dns.GetHostByAddress("134.123.12.12").HostName

【讨论】:

  • 这会给你一个错误,因为你至少需要添加一个:“;”,甚至可能是 2 个括号。
  • 至少从 .NET 3.5 开始,该方法已被标记为已弃用。它似乎有效,但它告诉您改用GetHostEntry
【解决方案2】:

我得到了一些可能对你有用的代码。

这里会给你你的互联网名称:

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;

这可能不是最好的方法,但它确实有效!

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    这将执行您在 /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);
    

    【讨论】:

      最近更新 更多