首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

急asp.net 怎么获得客户端ip和物理网卡地址

2013-02-24 
急,asp.net 如何获得客户端ip和物理网卡地址asp.net 如何获得客户端ip和物理网卡地址?谢谢[解决办法]Reque

急,asp.net 如何获得客户端ip和物理网卡地址
asp.net 如何获得客户端ip和物理网卡地址?谢谢
[解决办法]



Request.UserHostAddress
Request.UserHostName
Request.AnonymousID
Request.UserAgent


[解决办法]
......想干什么呢.....
LS的居然还告诉他.....
[解决办法]
客户端IP容易获取(内网用户获取的是公网的IP地址)
客户端物理网卡地址需要AcitveX.
[解决办法]
  private static string getIp()
    {
        if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
            return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ',' })[0];
        else
            return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    }

[解决办法]
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); 
  Int32 lhost = inet_addr("");  
  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 ("");
  else
  Response.Write ("" + 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));
  }
  } 
  }

  }
  catch(Exception err) 
  { 
  Response.Write(err.Message);
  }
  }



参考
参考

热点排行