获得 客户端信息(IP && Mac)

public class GetMac
{
    [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);

    //获取客户IP地址#region 获取客户IP地址
    public static 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地址#region 获取客户MAC地址
    public static string GetClientMac(out string Tmp_ClientIP, out string Tmp_ClientMac)
    {
        Tmp_ClientIP = "";
        Tmp_ClientMac = "";
        try
        {
            string strClientIP = GetClientIP();
            Int32 ldest = inet_addr(strClientIP); //目的地的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 == "192.168.0.88")
                    Tmp_ClientIP = "本地测试";
                else
                    Tmp_ClientIP = strClientIP;
                //return;
            }

            while (mac_src.Length < 12)
            {
                mac_src = mac_src.Insert(0, "0");
            }

            for (int i = 0; i < 11; i++)
            {
                if (0 == (i % 2))
                {
                    if (i == 10)
                    {
                        Tmp_ClientMac = Tmp_ClientMac.Insert(0, mac_src.Substring(i, 2));
                    }
                    else
                    {
                        Tmp_ClientMac = "-" + Tmp_ClientMac.Insert(0, mac_src.Substring(i, 2));
                    }
                }
            }
            return Tmp_ClientMac;
        }
        catch
        {
            return "";
        }

    }

}

原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1536390.html