【发布时间】:2012-12-13 19:01:12
【问题描述】:
我正在制作的 C# 应用程序有问题。我试图通过简单地单击一个按钮来让所有 IP 显示在 Windows 窗体内的文本框中。我目前有一个可以合作的基地:
private void btnIP_Click(object sender, EventArgs e)
{
NetworkInterface[] ipadapters = NetworkInterface.GetAllNetworkInterfaces();
string iptemplate = @"
Network adapter: {0}
IP: {1}";
string IPText = "";
foreach (NetworkInterface AdapterIP in ipadapters)
{
IPText = IPText + String.Format(iptemplate,
AdapterIP.Name,
AdapterIP = ipadd());
}
txtOutput.Text = IPText;
}
但是,我只是不明白我是否可以使用
using System.Net.NetworkInformation;
如果有人可以向我解释如何从那里获取 IP 并显示它,那将有很大帮助。我见过有人查询 DNS 以检索主机名等,但我只想显示所有适配器的所有 IPv4 和 IPv6 地址。
我只是不明白。我知道我需要保留 foreach() 方法,但不确定如何构建此代码以使其工作。注意:我将它用于所有适配器的描述和所有内容,但我创建了一个单独的按钮,专门用于 IP。
【问题讨论】:
-
你有什么不明白的地方?这个 SO 问题涉及到一些细节:stackoverflow.com/questions/1069103/… ...直到您准确解释您不理解的内容。
-
我以前做过这个,但我是为一个 CompactFramework 应用程序做的,并且使用了很多 P/Invokes,我不确定是否存在更管理的方法来做到这一点。但是,您是正确的,您应该不必须查询 DNS !!