簡體   English   中英

在沒有外部服務的情況下在 C#/.net 中獲取公共客戶端 IP

[英]Get Public client IP in C#/.net without external service

我如何在沒有外部 api/服務的情況下在 C# 中獲得公共客戶端 IP

我嘗試使用此代碼。 但是,沒有成功。

string ipAddress = Response.HttpContext.Connection.RemoteIpAddress.ToString();
        if(ipAddress == "::1")
        {
            ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();
        }
        Console.WriteLine(ipAddress);

在 ASP.NET 上遵循此方法:

Public string GetIp()  
{  
string ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];  
if (string.IsNullOrEmpty(ip))  
{  
   ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];  
}  
return ip;  
} 

否則使用以下方法:

Public string GetIp()  {
        string IPAddress = "";
            IPHostEntry Host = default(IPHostEntry);
            string Hostname = null;
            Hostname = System.Environment.MachineName;
            Host = Dns.GetHostEntry(Hostname);
            foreach (IPAddress IP in Host.AddressList)
            {
                if (IP.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    IPAddress = Convert.ToString(IP);
                }
            }

            return IPAddress;
}

如果您覺得這有幫助,請投票。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM