获取机器的所有IP地址获取机器的所有IP地址(Get All IP Addresses on Mac

2019-05-12 01:48发布

我怎样才能得到所有连接到我的应用程序(C#NET控制台应用程序)正在运行的计算机的IP地址? 我需要一个WCF服务绑定到主IP地址,并返回完整的IP地址列表的列表。

using System.Net;

string myHostName = Dns.GetHostName().ToString();
string ipAddress = Dns.Resolve(HostName).AddressList[0].ToString();

这是我在用的,现在让主IP地址,但我无法弄清楚如何获得休息归还。

如果我绑定一个WCF服务为localhost:8000,将暴露它的主?

Answer 1:

我认为这个例子应该可以帮助您。

// Get host name
String strHostName = Dns.GetHostName();

// Find host by name
IPHostEntry iphostentry = Dns.GetHostByName(strHostName);

// Enumerate IP addresses
foreach(IPAddress ipaddress in iphostentry.AddressList)
{
    ....
}

编辑:

“有没有这样的事,作为一个‘主’IP地址。

路由表确定哪个朝外的IP地址被根据目的地IP地址中使用的“(并且通过扩展,网络接口,其本身可以是虚拟或物理)。



Answer 2:

该DNS变种工作在网络上,但一个DNS条目可以有多个IP地址,一个IP地址,可以有多个DNS条目。 更重要的是,一个地址不需要被绑定到DNS条目都没有。

对于本地机器试试这个: -

  foreach (NetworkInterface netInterface in NetworkInterface.GetAllNetworkInterfaces())
  {
    Console.WriteLine("Name: " + netInterface.Name);
    Console.WriteLine("Description: " + netInterface.Description);
    Console.WriteLine("Addresses: ");
    IPInterfaceProperties ipProps = netInterface.GetIPProperties();
    foreach (UnicastIPAddressInformation addr in ipProps.UnicastAddresses)
    {
      Console.WriteLine(" " + addr.Address.ToString());
    }
    Console.WriteLine("");
  }


Answer 3:

为什么不直接绑定到0.0.0.0?
你听所有IPS这样



Answer 4:

IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());


Answer 5:

你或许应该绑定到0.0.0.0:8000 ,将其暴露在所有可用的IP地址,且仅当用户/管理员需要这样绑定到特定的IP地址。



Answer 6:

我觉得OP是询问如何让所有的地址上的本地网卡,而不仅仅是知道DNS这些地址。 通过主,他很可能意味着下的主地址“使用下面的IP地址”,在适配器的属性,并通过“休息”,他很可能意味着那些高级上市>(附加)IP Addesses。

DNS不一定会知道这些。



文章来源: Get All IP Addresses on Machine