博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net获取客户端IP,Mac
阅读量:6995 次
发布时间:2019-06-27

本文共 2992 字,大约阅读时间需要 9 分钟。

public class GetClientInfo    {        [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);        #region 取IP        ///         ///         ///         public static string GetClientIP()        {            string getip;            if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) // using proxy            {                getip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  // Return real client IP.            }            else// not using proxy or can't get the Client IP            {                getip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.            }            return getip;        }        #endregion        public static string GetClientMacAddress()        {            try            {                string strClientIP = System.Web.HttpContext.Current.Request.UserHostAddress.ToString().Trim();                Int32 ldest = inet_addr(strClientIP); //目的地的ip                 Int32 lhost = 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");                if (mac_src == "0")                {                    if (strClientIP == "127.0.0.1")                        return GetServerMacAddress();                    else                        return null;                }                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;            }            catch            {                return null;            }        }        public static string GetServerMacAddress()        {            ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");            ManagementObjectCollection mo = mAdapter.GetInstances();            foreach (ManagementBaseObject m in mo)            {                if ((bool)m["IpEnabled"] == true)                {                    return m["MacAddress"].ToString();                }            }            mo.Dispose();            return null;        }

  

转载地址:http://jlivl.baihongyu.com/

你可能感兴趣的文章
【2018更新】小白独立搭建博客--Github Pages和Hexo简明教程
查看>>
JavaScript中的执行环境及作用域
查看>>
小黑小波比.nodejs读取全部文件内容
查看>>
javascript教程大总汇
查看>>
如何使UITableView滚动到最上边
查看>>
linux下如何用命令删除乱码文件
查看>>
顺序链表的实现
查看>>
Java读取导入Excel文件解析
查看>>
同一端口如何区分不同的Socket
查看>>
【Android】Dialog从下往上弹起(Dialog全屏,模态显示)
查看>>
dubbo路由机制分析2(路由设置存储)
查看>>
Cortex系列ARM核心及体系结构介绍
查看>>
栈帧的含义和作用
查看>>
使用fprof基本步骤
查看>>
EL表达式语言及EL函数库 知识详解 学习笔记
查看>>
spring源码解读-xml中配置一个bean到容器的生产一个bean实例都经历了那些过程
查看>>
php instanceof 与 is_a()区别
查看>>
Struts1 标签库
查看>>
错误: 代理抛出异常错误: java.net.MalformedURLException: L...
查看>>
kafka php接口规则
查看>>