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

来源:互联网 发布:zblog cms主题 编辑:程序博客网 时间:2024/05/20 19:29

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);

    }

   }

原创粉丝点击