当前位置:  开发笔记 > 编程语言 > 正文

在ASP.NET中获取服务器的IP地址?

如何解决《在ASP.NET中获取服务器的IP地址?》经验,为你挑选了5个好方法。

如何获取调用ASP.NET页面的服务器的IP地址?我见过有关Response对象的内容,但在c#中我是新手.万分感谢.



1> TStamper..:

这应该工作:

 //this gets the ip address of the server pc

  public string GetIPAddress()
  {
     IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); // `Dns.Resolve()` method is deprecated.
     IPAddress ipAddress = ipHostInfo.AddressList[0];

     return ipAddress.ToString();
  }

http://wec-library.blogspot.com/2008/03/gets-ip-address-of-server-pc-using-c.html

要么

 //while this gets the ip address of the visitor making the call
  HttpContext.Current.Request.UserHostAddress;

http://www.geekpedia.com/KB32_How-do-I-get-the-visitors-IP-address.html


顶部代码块获取运行代码的服务器的IP地址.底部代码块获取发出请求的访问者的IP地址.
这两个代码块完全不同.
Dns.Resolve已经过时你应该使用Dns.GetHostEntry(strHostName)代替

2> MrPurpleStre..:

Request.ServerVariables["LOCAL_ADDR"];

这为多宿主服务器提供了IP请求


这也是最有效和稳定的方法.如果你使用```System.Net.Dns```你做错了.
更具体地说:System.Web.HttpContext.Current.Request.ServerVariables [“ LOCAL_ADDR”];

3> mythz..:

以上是缓慢的,因为它需要DNS调用(如果一个不可用,显然不会工作).您可以使用下面的代码获取当前pc的本地IPV4地址及其对应的子网掩码的映射:

public static Dictionary GetAllNetworkInterfaceIpv4Addresses()
{
    var map = new Dictionary();

    foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
    {
        foreach (var uipi in ni.GetIPProperties().UnicastAddresses)
        {
            if (uipi.Address.AddressFamily != AddressFamily.InterNetwork) continue;

            if (uipi.IPv4Mask == null) continue; //ignore 127.0.0.1
            map[uipi.Address] = uipi.IPv4Mask;
        }
    }
    return map;
}

警告:尚未在Mono中实现



4> Alberto León..:
  //this gets the ip address of the server pc
  public string GetIPAddress()
  {
     string strHostName = System.Net.Dns.GetHostName();
     //IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); <-- Obsolete
     IPHostEntry ipHostInfo = Dns.GetHostEntry(strHostName);
     IPAddress ipAddress = ipHostInfo.AddressList[0];

     return ipAddress.ToString();
  }



5> 小智..:

这将适用于IPv4:

public static string GetServerIP()
{            
    IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());

    foreach (IPAddress address in ipHostInfo.AddressList)
    {
        if (address.AddressFamily == AddressFamily.InterNetwork)
            return address.ToString();
    }

    return string.Empty;
}

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有