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

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

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

  

转载于:https://www.cnblogs.com/anbylau2130/p/3158538.html

你可能感兴趣的文章
Vue, element-ui Module build failed: Error: No PostCSS Config found
查看>>
36-高级特性之自定义类(1)
查看>>
VMware 克隆的相关设置
查看>>
【转】现代浏览器的工作原理
查看>>
Exception Type: IntegrityError 数据完整性错误
查看>>
《浪潮之巅》十八十九章笔记
查看>>
Power Strings
查看>>
[转载]Hash
查看>>
Nuget:Newtonsoft.Json
查看>>
你是这样理解shell编程的嘛?
查看>>
前端性能优化之重排和重绘
查看>>
Assets和Raw区别
查看>>
【luogu4185】 [USACO18JAN]MooTube [并查集]
查看>>
手机号脱敏处理
查看>>
CI控制器调用内部方法并载入相应模板的做法
查看>>
Hdu - 1002 - A + B Problem II
查看>>
HDU - 2609 - How many
查看>>
每天CookBook之Python-003
查看>>
每天CookBook之Python-004
查看>>
Android设置Gmail邮箱
查看>>