来自于:婕舞飞扬
/// <summary> ......
/// <summary>
/// 获取当前请求的IP地址
/// </summary>
/// <returns></returns>
public static string GetIP()
{
//获取IP地址
HttpRequest request = HttpContext.Current.Request;
string ipAddress=string.Empty;
if(request.ServerVariables["HTTP_X_FORWARDED_FOR"]==null || request.ServerVariables["HTTP_X_FORWARDED_FOR"]=="")
{
ipAddress = request.ServerVariables["REMOTE_ADDR"];
}
else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",")>=0)
{
int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(",");
ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
}
else if(request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";")>=0)
{
int index = request.ServerVariables["HTTP_X_FORWARDED_FOR"].IndexOf(";");
ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Substring(0,index-1);
}
else
{
ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
if(ipAddress=="127.0.0.1")
{
ipAddress = GetLocalhostIPAddress();
}
return ipAddress;
}
/// <summary>
/// 获取本机IP
/// </summary>
/// <returns></returns>
private static string GetLocalhostIPAddress()
{
string hostName = System.Net.Dns.GetHostName();
System.Net.IPHostEntry hostInfo =System.Net.Dns.GetHostByName(hostName);
System.Net.IPAddress[] IpAddr = hostInfo.AddressList;
string localIP = string.Empty;
for (int i = 0; i < IpAddr.Length; i++)
{
localIP += IpAddr[i].ToString();
}
return localIP;
}
以上获取的IP地址有可能会使代理服务器的IP
在ASP.NET中专用属性:
获取服务器电脑名: Page.Server.ManchineName
获取用户信息: Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP: Page.Request.UserHostAddress在网络编程中的通用方法:
获取当前电脑名: static System.Net.Dns.GetHostName()
根据电脑名取出全部IP地址: static System.Net.Dns.Resolve(电脑名).AddressList
也可根据IP地址取出电脑名: static System.Net.Dns.Resolve(IP地址).HostName系统环境类的通用属性:
当前电脑名: static System.Environment.MachineName
当前电脑所属网域: static System.Environment.UserDomainName
当前电脑用户: static System.Environment.UserName