【问题标题】:How to get IP address of server in .NET?如何在.NET中获取服务器的IP地址?
【发布时间】:2011-03-27 23:45:47
【问题描述】:

如何在 .NET 中获取 Web/应用程序服务器的 IP 地址?不是客户端IP地址,而是服务器IP地址。


我刚刚发现了一些关于 server variables 的信息。

【问题讨论】:

  • 您想要外部 IP 地址吗?本地网络上的 IP 地址?发起请求的 URL 的 IP 地址?
  • @McKay 我正在寻找 Web 服务器的外部 IP 地址。
  • 所以,问题在于服务器的外部 IP 地址不是服务器本身知道的。这是外部硬件知道的。我的外部 IP 地址由我的 ISP 控制。我碰巧知道它是什么,但我不能直接得到它。
  • @McKay 有趣...那么内部 IP 地址怎么样,知道如何获取吗?
  • 我猜真正的问题是“你想要这个做什么?”

标签: .net webserver ip-address


【解决方案1】:

您可能需要类似以下代码的代码来获取当前机器的所有 IP 地址。但是,如果您有多个请求,它不会告诉您特定请求来自哪个网络适配器(以及 IP 地址)。

   String strHostName = Dns.GetHostName();
   Console.WriteLine("Host Name: " + strHostName);

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

   // Enumerate IP addresses
   foreach(IPAddress ipaddress in iphostentry.AddressList)
   {
       Console.WriteLine(ipaddress.ToString());
   }

【讨论】:

    【解决方案2】:

    获取my own IP address in C#

    IPHostEntry ipEntry = DNS.GetHostByName (Dns.GetHostName());
    IPAddress [] addr = ipEntry.AddressList;
    

    为别人的机器买东西

    IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
    IPAddress [] addr = ipEntry.AddressList;
    

    【讨论】:

      【解决方案3】:

      有些服务会告诉您您的外部 IP 地址是什么,但它可能会发生变化。

      示例服务:

      【讨论】:

        【解决方案4】:

        要以编程方式获取服务器的 IP 地址(和 Coutnry/位置),我使用 Utrace.de API。它还返回一个带有 IP 地址和位置信息的 XML。

        查询示例:http://xml.utrace.de/?query=google.com

        【讨论】:

        • 我认为他正在寻找发现他当前服务器的 IP 地址,并且不知道如何获取数据以传递给 utrace.de
        • 哦.. 我明白了。我应该给出域名的例子......而不是IP。
        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 2010-10-13
        • 2011-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多