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 (String.IsNullOrEmpty(result)) { result = HttpContext.Current.Request.UserHostAddress; } return result; } http://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html
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); } }学习了,非常有效的代码,谢谢
///// <summary> ///// 获取IP 的方法 ///// </summary> ///// <returns></returns> //private string GetComIp() //{ // string ip; //计算机ip // if (Context.Request.ServerVariables["HTTP_VIA"] != null) // 服务器, using proxy // { // // 得到真实的客户端地址 // ip = Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP. // } // else//如果没有使用代理服务器或者得不到客户端的ip 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. // } // return ip; //}
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} if (String.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
http://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html
{
string user_IP = "";
if (Request.ServerVariables["HTTP_VIA"] != null)
{
user_IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
}
{
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);
}
}学习了,非常有效的代码,谢谢
///// 获取IP 的方法
///// </summary>
///// <returns></returns>
//private string GetComIp()
//{
// string ip; //计算机ip
// if (Context.Request.ServerVariables["HTTP_VIA"] != null) // 服务器, using proxy
// {
// // 得到真实的客户端地址
// ip = Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.
// }
// else//如果没有使用代理服务器或者得不到客户端的ip 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.
// }
// return ip;
//}