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

WebService 获取客户端 IP 和 MAC 等信息的更多相关文章

  1. 获取客户端IP地址定位城市信息

    获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...

  2. ASP.NET获取客户端IP及MAC地址

    朋友最近问如何获取客户端IP及MAC地址,一直想把这段给整理一下,契机来了:下边分为了C#后台获取的方法和前台Javascript(调用ActiveX)获取的方法,大家如果有好的方法一起讨论撒O(∩_ ...

  3. openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息

    openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...

  4. [Asp.Net]获取客户端ip和mac地址

    摘要 有时候,我们需要获取客户端的一些信息,以便进行统计.比如:客户端的唯一标识,ip等信息 IP 通过获取HTTP_X_FORWARDED_FOR,或者REMOTE_ADDR可以获取客户端的ip. ...

  5. .NET(C#)调用webService获取客户端IP地址所属区域(非异步)

    功能描述: 此接口用于获取客户端访问的IP的地址所属的区域(国家,城市等).通过输入IP地址查询国家.城市.所有者等信息.没有注明国家的为中国输入参数:IP地址(自动替换 " ." ...

  6. (效果五)js获取客户端ip地址及浏览器信息

    在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...

  7. c# 获取客户端ip、mac、机器名、操作系统、浏览器信息

    d using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...

  8. 获取本地IP和mac等信息

    1获取mac protected string getHostMacName() { string mac = ""; ManagementClass mc; mc = new M ...

  9. ASP.NET获取客户端信息,获取客户端IP等等

    山上明月 ASP.NET能知道的东西 获取服务器电脑名: Page.Server.ManchineName 获取用户信息: Page.User 获取客户端电脑名:Page.Request.UserHo ...

随机推荐

  1. IBM主机上清除告警黄灯方法

    机器亮黄灯告警一般是有硬件问题(单电源等可能有安全隐患的硬件配置也可能造成黄灯亮起),见到后首先进行下硬件诊断,方法如下: 诊断系统,判断是否硬件故障:1.Root用户执行diag: 2.回车后,进第 ...

  2. file_get_contents 无法采集 https 网站

    <?php echo file_get_contents("https://www.baidu.com"); ?> 运行以上代码会报以下错误: 再运行一次去看看!

  3. caioj 1073 动态规划入门(三维一边推:最长公共子序列加强版(三串LCS))

    三维的与二维大同小异,看代码. #include<cstdio> #include<cstring> #include<algorithm> #define REP ...

  4. CSU 1378 Shipura 简单模拟

    上周末中南的题,当时就知道是个简单模拟题,可是一个多小时就是没写出来,代码能力啊 >.< 题意: 某人发明了一种程序语言,只支持一种运算">>",和一种函数 ...

  5. 九、 HBase SHELL、 JAVA 和 Thrift 客户端

    HBase 由 Java 语言实现,同时他也是最主要最高效的客户端. 相关的类在org.apache.hadoop.hbase.client 包中.涵盖所有 增删改查 API . 主要的类包含: HT ...

  6. spring的PropertyPlaceholderConfigurer不生效的问题

    经常出现这种问题,每次都debug知道原因,但每次都会忘记,所以记录一下. 原因:maven项目中使用了非maven管理的jar包(通过systemPath引用),这些jar包没有放在${projec ...

  7. JVM学习心得

    出处:http://blog.csdn.net/qq_16143915/article/details/51195438 一.JAVA内存管理与GC机制 Java在JVM所虚拟出的内存环境中执行,ja ...

  8. Hadoop集群管理--保证集群平稳地执行

    本篇介绍为了保证Hadoop集群平稳地执行.须要深入掌握的知识.以及一些管理监控的手段,日常维护的工作. HDFS 永久性数据结构 对于管理员来说.深入了解namenode,辅助namecode和da ...

  9. CentOS下安装C/C++开发工具包的最佳方式

    如果你使用的是 Fedora, Red Hat, CentOS, 或者 Scientific Linux 系统,使用下面的命令安装GNU的C/C++开发包和编译器. # yum groupinstal ...

  10. SOAPUI使用

    简介:在开发接口的时候每次验证接口是否正确都需要手动写测试DEMO来验证,使用SOAPUI可以大大减少测试时间. 目录 1.SOPUI介绍... 1 2.SOAPUI使用... 1 2.1新建SOAP ...