急,asp.net 如何获得客户端ip和物理网卡地址

langxingcs 2011-07-06 01:40:25
asp.net 如何获得客户端ip和物理网卡地址?谢谢
...全文
219 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
andylist 2013-02-04
  • 打赏
  • 举报
回复
正有这个需要。
子夜__ 2011-07-08
  • 打赏
  • 举报
回复
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);
}
}


参考
参考
快乐的小二兔 2011-07-06
  • 打赏
  • 举报
回复
  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"];
}
langxingcs 2011-07-06
  • 打赏
  • 举报
回复
做个投票,规定一个ip一天只能投一次,想用物理网卡来限制
鸭梨山大帝 2011-07-06
  • 打赏
  • 举报
回复
客户端IP容易获取(内网用户获取的是公网的IP地址)
客户端物理网卡地址需要AcitveX.
丰云 2011-07-06
  • 打赏
  • 举报
回复
......想干什么呢.....
LS的居然还告诉他.....
coxie007 2011-07-06
  • 打赏
  • 举报
回复


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

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧