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

ASP.NET获取IP地址以及MAC地址

2013-12-23 13:48 447 查看
(一)
/方法一

HttpContext.Current.Request.UserHostAddress;

//方法二

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

//方法三 (局域网)

string strHostName = System.Net.Dns.GetHostName();

string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

//方法四(无视代理)

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

//方法五

if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // using proxy

{

ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.

}

else// not using proxy or can't get the Client IP

{

ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.

}

备注:

1. 有些代理是不会发给我们真实IP地址的

2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP

(二)使用IP获取MAC地址

private string GetCustomerMac(string IP)

{

Int32 ldest = 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");

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

}

}

}

return mac_dest;

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: