using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace ConsoleApp1
{
class Program
{
private static void Main(string[] args)
{
string msg = GetHostStr(null);
System.Console.WriteLine("IP:"+msg);
Console.ReadKey();
}
public static string GetHostStr(HttpRequestBase request)
{
var ipList = new List<IPAddress>();
var addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
foreach (var add in addressList)
{
try
{
long a = add.ScopeId;
}
catch
{
ipList.Add(add);
}
}
var host = ipList.Count > 0 ? ipList[0].ToString() : request.Url.Host;
return host;
}
}
}
/// <summary>
/// 得到用户IP地址
/// </summary>
/// <returns>返回用户IP地址,如果获取不到返回 0.0.0.0 </returns>
///
public static string ClientIP
{
get
{
var context = HttpContext.Current;
string result = "";
if(context== null|| context.Request==null)
{
result = "localHost";
}
if (string.IsNullOrEmpty(result))
{
result = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; //获取包括使用了代理服务器的地址列表。
}
if (string.IsNullOrEmpty(result))
{
result = context.Request.ServerVariables["REMOTE_ADDR"]; //最后一个代理服务器地址。
}
if (string.IsNullOrEmpty(result))
{
result = context.Request.UserHostAddress;
}
return result;
}
}
版权声明:本文为qq_45244974原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。