asp.net获取IP与MAC
2016-03-11 20:08
447 查看
用于获取客户端的IP与MAC,MAC内网可以用,外网无用!
using System.Runtime.InteropServices; [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); protected void Page_Load(object sender, EventArgs e) { //获取IP this.ip_textbox.Text = GetClientIP(); //获取MAC this.MAC_textbox.Text = GetClientMAC(); } ///<summary> ///得到客户端ip ///</summary> ///<returns>ip</returns> 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; } ///<summary> /// 利用客户端ip得到客户端mac ///</summary> ///<param name="remoteip">客户端ip</param> ///<returns>int16类型的mac</returns> static private Int64 getremotemac(string remoteip) { Int32 ldest = inet_addr(remoteip); try { Int64 macinfo = new Int64(); Int32 len = 6; int res = SendARP(ldest, 0, ref macinfo, ref len); return macinfo; } catch (Exception err) { Console.WriteLine("error:{0}", err.Message); } return 0; } ///<summary> /// int64类型的mac转换成正确的客户端mac ///</summary> ///<returns>mac</returns> private string GetClientMAC() { Int64 macid = getremotemac(GetClientIP()); if (macid == 0) return "0"; string beforeMacAddr = Convert.ToString(macid, 16); string endMacAddr = ""; string[] macArray = new string[6]; for (int i = 0; i < 6; i++) { macArray[i] = beforeMacAddr.Substring(i * 2, 2); } for (int i = 0; i < 6; i++) { endMacAddr += macArray[5 - i] + "-"; } endMacAddr = endMacAddr.Substring(0, endMacAddr.Length - 1); endMacAddr = endMacAddr.ToUpper(); return endMacAddr; }
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 房产界已上市和IPO路上的难兄难弟:房天下与房多多
- 什么是Mac OS X?跟Linux有什么区别
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- 雷军是谁,他为什么而奋斗?小米上市和雷军的英雄主义
- Linux vs Mac:Linux 比 Mac 好的 7 个原因
- IP网络路由技术
- 如何利用“IP地址欺骗”
- 新手看招:避免网络 IP 地址被非法修改
- 网络管理之IP地址篇
- ip地址基础知识
- 星外ASP.Net的安全设置相关说明
- 脚本之家因服务器资源紧张 换了ip并升级了带宽
- IP地址组成与类型
- 苹果mac OS X上安装metasploit
- C#、ASP.NET通用扩展工具类之TypeParse
- 计算机名DNS网关IP(大家可以用来学习)
- Windows2003下批量添加和导出所有ip BAT脚本