WebService 获取客户端 IP 和 MAC 等信息

IP地址

public 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);

public string getClientMAC()
{
    try
    {
        string userip = HttpContext.Current.Request.UserHostAddress;
        string strClientIP = 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 (userip == "127.0.0.1")
                return "正在访问Localhost!";
            else
                return "欢迎来自IP为" + userip + "的朋友!";
        }

        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 "IP:" + userip + ", MAC地址:" + mac_dest;
    }
    catch (Exception e)
    {
        return e.Message;
    }
}

浏览器:

var majorVersion = HttpContext.Current.Request.Browser.MajorVersion.ToString(); //获取客户端浏览器的(主)版本号
var version = HttpContext.Current.Request.Browser.Version.ToString();           //获取客户端浏览器的完整版本号
var platform = HttpContext.Current.Request.Browser.Platform.ToString();         //获取客户端使用平台的名字
var url = HttpContext.Current.Request.Url.ToString();                           //获取有关当前请求的URL的信息。   
var urlReferrer = HttpContext.Current.Request.UrlReferrer.ToString();           //获取有关客户端上次请求的URL的信息,该请求链接到当前的URL。   
var userAgent = HttpContext.Current.Request.UserAgent.ToString();               //获取客户端浏览器的原始用户代理信息。   
var hostAddress = HttpContext.Current.Request.UserHostAddress.ToString();       //获取远程客户端的IP主机地址。   
var hostName = HttpContext.Current.Request.UserHostName.ToString();             //获取远程客户端的DNS名称。   
var userLanguages = HttpContext.Current.Request.UserLanguages.ToString();       //获取客户端语言首选项的排序字符串数组。


System.Web.HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser;
string result = "Browser Capabilities: "
                    + "Type = " + browser.Type + "; "
                    + "Name = " + browser.Browser + "; "
                    + "Version = " + browser.Version + "; "
                    + "Major Version = " + browser.MajorVersion + "; "
                    + "Minor Version = " + browser.MinorVersion + "; "
                    + "Platform = " + browser.Platform + "; "
                    + "Is Beta = " + browser.Beta + "; "
                    + "Is Crawler = " + browser.Crawler + "; "
                    + "Is AOL = " + browser.AOL + "; "
                    + "Is Win16 = " + browser.Win16 + "; "
                    + "Is Win32 = " + browser.Win32 + "; "
                    + "Supports Frames = " + browser.Frames + "; "
                    + "Supports Tables = " + browser.Tables + "; "
                    + "Supports Cookies = " + browser.Cookies + "; "
                    + "Supports VBScript = " + browser.VBScript + "; "
                    + "Supports JavaScript = " + browser.JavaScript + "; "
                    + "Supports Java Applets = " + browser.JavaApplets + "; "
                    + "Supports ActiveX Controls = " + browser.ActiveXControls;

https://www.cnblogs.com/00OO/archive/2011/04/30/2033633.html
https://www.cnblogs.com/kingboy/archive/2013/08/18/3266255.html

转载于:https://www.cnblogs.com/wsq-blog/p/10954266.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值