如何在不使用外部服务的情况下获取 ASP.NET 中客户端的外部 IPv4 地址?
How to get client's external IPv4 address in ASP.NET without using external services?
我目前正在使用以下函数获取客户端的外部 IPv4 地址:
public static string GetExternalIP()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
有没有其他方法可以在不使用任何外部网站或服务的情况下获得相同的结果?
没有。因为实际上只有当你连接到服务器时他才能告诉你你来自哪里......所以除了连接到另一个服务之外别无选择。它非常快......(如果这让你感到困扰......)希望你能理解。
获取内部 IP 地址
protected string GetInternalIP()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
获取外部 IP 地址
public static string GetExternalIP()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
我目前正在使用以下函数获取客户端的外部 IPv4 地址:
public static string GetExternalIP()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
有没有其他方法可以在不使用任何外部网站或服务的情况下获得相同的结果?
没有。因为实际上只有当你连接到服务器时他才能告诉你你来自哪里......所以除了连接到另一个服务之外别无选择。它非常快......(如果这让你感到困扰......)希望你能理解。
获取内部 IP 地址
protected string GetInternalIP()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
获取外部 IP 地址
public static string GetExternalIP()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}