如何获取IIS服务器上的可用IP地址列表?

时间:2013-06-18 16:13:32

标签: c# iis

使用IIS 7管理器创建网站时,您可以通过从下拉列表中进行选择来设置新网站的IP地址。有没有办法以编程方式获取此列表?

我在applicationHost.config中没有看到它,所以我不确定在哪里看。

感谢。

1 个答案:

答案 0 :(得分:0)

根据Kzest提供的链接,看起来有两种方法可以实现这一点。在下面的示例中,我在AddressFamily上进行筛选,仅显示看起来像'xxx.yyy.zz.q'的项目。

此外,第二种方法也返回127.0.0.1地址,为了我的目的,它不太有用。

private void showIpAddresses()
{
  //using System.Net
  IPHostEntry hostEntry=Dns.GetHostEntry(Dns.GetHostName());
  foreach(IPAddress ipAddress in hostEntry.AddressList)
    if(ipAddress.AddressFamily.Equals(System.Net.Sockets.AddressFamily.InterNetwork))
      Console.WriteLine(ipAddress.ToString());
}

private void showIpAddresses2()
{
  //using System.Net.NetworkInformation
  foreach(NetworkInterface nwi in NetworkInterface.GetAllNetworkInterfaces())
  {
    IPInterfaceProperties ipProperties=nwi.GetIPProperties();
    foreach(UnicastIPAddressInformation ipAddress in ipProperties.UnicastAddresses)
      if(ipAddress.Address.AddressFamily.Equals(System.Net.Sockets.AddressFamily.InterNetwork))
        Console.WriteLine(ipAddress.Address.ToString());
  }
}

其中任何一个都满足我的需求并回答了这个问题。感谢Kzest指出我正确的方向。