您的位置:首页 > 编程语言 > ASP

ASP.NET获取客户端IP/用户名等信息

2010-05-17 16:07 423 查看
ASP.NET获取客户端IP/用户名等信息
1. 在ASP.NET中专用属性:

获取服务器电脑名:Page.Server.ManchineName

获取用户信息:Page.User

获取客户端电脑名:Page.Request.UserHostName

获取客户端电脑IP:Page.Request.UserHostAddress

2. 在网络编程中的通用方法:

获取当前电脑名:static System.Net.Dns.GetHostName()

根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList

也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName

3. 系统环境类的通用属性:

当前电脑名:static System.Environment.MachineName

当前电脑所属网域:static System.Environment.UserDomainName

当前电脑用户:static System.Environment.UserName

4. if(Request.ServerVariables["HTTP_VIA"]!=null){ string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();

}else{

string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();

}

5.<%=Request.UserHostAddress%>

6.获取客户端IP:

private string GetClientIP()

{

string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

if (null == result || result == String.Empty)

{

result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

}

if (null == result || result == String.Empty)

{

result = HttpContext.Current.Request.UserHostAddress;

}

return result;

}

获取MAC地址:

[DllImport("Iphlpapi.dll")]

private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length);

[DllImport("Ws2_32.dll")]

private static extern Int32 inet_addr(string ip);

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

try

{

string userip=Request.UserHostAddress;

string strClientIP = Request.UserHostAddress.ToString().Trim();

Int32 ldest = inet_addr(strClientIP); //目的地的ip

Int32 lhost = inet_addr(""); //本地服务器的ip

Int64 macinfo = new Int64();

Int32 len = 6;

int res = SendARP(ldest,0, ref macinfo, ref len);

string mac_src=macinfo.ToString("X");

if(mac_src == "0")

{

if(userip=="127.0.0.1")

Response.Write ("正在访问Localhost!");

else

Response.Write ("欢迎来自IP为" + userip + "的朋友!" + "<br>");

return;

}

while(mac_src.Length<12)

{

mac_src = mac_src.Insert(0,"0");

}

string mac_dest="";

for(int i=0;i<11;i++)

{

if (0 == (i % 2))

{

if ( i == 10 )

{

mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));

}

else

{

mac_dest ="-" + mac_dest.Insert(0,mac_src.Substring(i,2));

}

}

}

Response.Write ("欢迎来自IP为"+userip+ "<br>" + ",MAC地址为"+mac_dest+"的朋友!"

+ "<br>");

}

catch(Exception err)

{

Response.Write(err.Message);

}

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yewguwei/archive/2008/11/25/3367860.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: