为什么我无法在C#中从nslookup打印出所有IP地址

用户名

您好我有一个问题,我正在尝试获取nslookup域的所有IP地址。我在按钮上的c#中使用以下脚本,但是它仅打印出1个IP地址,我在做什么错?

string myHost = "domain.com";
string myIP = null;


for (int i = 0; i <= System.Net.Dns.GetHostEntry(myHost).AddressList.Length - 1; i++)
{
    if (System.Net.Dns.GetHostEntry(myHost).AddressList[i].IsIPv6LinkLocal == false)
    {
        //myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString();
        txtIp.Text = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString();
    }
}

所有帮助将非常有用,因为我在这里看到了关于stackoverflow的多个答案,但是我无法正常工作。

问候,丹尼斯

雷内·沃格特(Rene Vogt)

首先,您应该避免发出dns请求3次将结果存储在变量中。

其次,您设置txtIp.Text为最后一个条目。您需要附加字符串,但是要替换它们。试试下面的代码:

string myHost = "domain.com";
string myIP = null;
IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(myHost);

for (int i = 0; i <= hostEntry.AddressList.Length - 1; i++)
{
    if (!hostEntry.AddressList[i].IsIPv6LinkLocal)
    {
        txtIp.Text += hostEntry.AddressList[i].ToString();
    }
}

但这仍然可以简化为:

string myHost = "domain.com";
string myIP = null;
IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(myHost);
txtIP.Text = string.Join(", ", hostEntry.AddressList.Where(ip => !ip.IsIPv6LinkLocal).Select(ip => ip.ToString()));

这为您提供了以逗号分隔的IP地址列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的程序仅打印出其他所有字符?C

从 nslookup 获取所有 IP 地址

为什么我在VirtualBox中的所有16.04服务器都具有相同的IP地址(10.0.2.15)?

为什么在Ubuntu c ++中数据无法使用eclipse打印出来?

Python ciscoconfparse查找配置了“关闭”或“无ip地址”的所有接口并打印出整个接口块?

我无法在 C++ 中打印出带有“cout”的句子

为什么Ping和Dig提供的IP地址与nslookup不同?

获取C中的所有IP地址

我如何列出打印出当前存储在我的HashMap中的所有密钥,从而将人们映射到他们的地址

为什么getaddrinfo不返回所有IP地址?

为什么无法使用IP地址访问我的博客?

为什么具有更新输出模式的流查询会打印出所有行?

如何在C#中从数据库的一行中打印出所有列

无论我为输入放置什么,为什么我的C程序会打印出相同的输出?

如何在Python 3中打印出编号的IP地址

为什么在我的代码中通过函数打印指针时,直接打印出不同的结果?

为什么我不能在 C++ 中打印 NULL 地址

我的Docker容器没有IP地址。为什么?

为什么我的IP地址是公开的而不是私有的?

为什么我的代码无法正确打印出最高和第一的亚军?

为什么我无法使用 sphinx python 包打印出文档字符串?

为什么我们在 127.0.0.0 中没有可用的 IP 地址?

为什么我的客户端IP地址没有出现在netstat输出中?

为什么我不能打印出我的字符串数组c ++?

我的C ++程序正在打印出地址而不是值

为什么powershell(ise)有时会打印出我执行的代码?

为什么我的代码块实例变量没有初始化并打印出“ NSGlobalBlock”?

为什么我的代码没有打印出正确的最小差异?

为什么打印消息不会在我的C#代码中打印?