如何使用Asp.Net C#获取客户端IP地址 - 当我们的项目托管在IIS中时

11 浏览
0 Comments

如何使用Asp.Net C#获取客户端IP地址 - 当我们的项目托管在IIS中时

我正在使用ASP.NET C#进行开发,在其中我需要获取客户端的IP地址来展示客户端的IP。

我将项目托管在IIS 7中,使用静态IP可以连接我的应用程序。

我尝试使用以下代码来获取客户端的IP地址,但无法得到正确的IP地址。

每次我都得到的IP地址是192.168.1.18。

我使用以下代码:

private void GetIP()
{
   string userip = Request.UserHostAddress;
    if (Request.UserHostAddress != null)
    {
        Int64 macinfo = new Int64();
        string macsrc = macinfo.ToString("X");
        if (macsrc == "0")
        {
            if (userip == "127.0.0.1")
            {
                //ScriptManager.RegisterStartupScript(this, GetType(), "Message", "alert('Visited Localhost')", true);
                lblIPAddress.Text = userip;
            }
            else
            {
                lblIPAddress.Text = userip;
            }
        }
    }            
}

我还尝试使用以下代码,但它只显示了托管服务器的IP地址,例如192.168.1.5。

public static string GetLocalIPAddress()
{
    var host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (var ip in host.AddressList)
    {
        //if (ip.AddressFamily == AddressFamily.InterNetwork)
        if (ip.AddressFamily != AddressFamily.InterNetworkV6)
        {
            return ip.ToString();
        }
    }
    throw new Exception("Local IP Address Not Found!");
}

我需要正确的客户端IP地址,希望有人能帮忙。

0
0 Comments

问题的原因:在使用Asp.Net C#开发的项目中,当项目托管在IIS(Internet Information Services)中时,我们需要获取客户端的IP地址。

解决方法:可以使用以下代码来获取客户端的IP地址。

string IP = Request.UserHostAddress;

完整的文章如下:

在使用Asp.Net C#开发的项目中,当项目托管在IIS(Internet Information Services)中时,我们经常需要获取客户端的IP地址。本文将介绍如何使用Asp.Net C#来获取客户端的IP地址。

要获取客户端的IP地址,可以使用以下代码:

string IP = Request.UserHostAddress;

以上代码将返回客户端的IP地址。这是一种简单而常用的方法。

希望这篇文章对你有所帮助!

0
0 Comments

在IIS中托管项目时,如何使用Asp.Net C#获取客户端IP地址的问题可能出现的原因和解决方法。

这个问题的原因可能是由于在IIS服务器上托管项目时,使用的方法无法正确地获取客户端的IP地址。在云端托管时,使用HTTP_X_FORWARDED_FOR和REMOTE_ADDR请求变量可以正常工作,但是在自己的服务器上托管(即IIS)时,无法正常工作。

解决这个问题的方法可以参考以下链接:stackoverflow.com/questions/6914457/…。这个链接中的问题和我们遇到的问题相似,可能会提供一些解决方案。

在执行项目时,可能会显示127.0.0.1作为IP地址,但在托管后可能会显示192.168.1.18作为IP地址。

0