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. easyui-combobox实现取值范围的联动

    需求:需要用两个combobox来输入一个年月的范围,下拉框的内容从服务器获取.需要实现选中前者后,后者的下拉框中不能显示比前者数值小的:选中后者后,前者的下拉框内容不能显示比后者数值大的 有两个co ...

  2. vSphere VCSA5.5加入AD域环境问题记录

    vSphere VCSA5.5加入AD域环境问题记录 实验目的: 搭建一套vSphere VCSA5.5,并加入新搭建的AD域,并使用一个域用户登录VC,赋予对VC的只读权限. 实验环境: 使用VMW ...

  3. COGS——T1588. [USACO FEB04]距离咨询

    http://cogs.pro/cogs/problem/problem.php?pid=1588 ★★   输入文件:dquery.in   输出文件:dquery.out   简单对比时间限制:1 ...

  4. 第6章8节《MonkeyRunner源代码剖析》Monkey原理分析-事件源-事件源概览-小结

    本章我们重点环绕处理网络过来的命令的MonkeySourceNetwork这个事件源来阐述学习Monkey是怎样处理MonkeyRunner过来的命令的.以下总结下MonkeyRunner从启动Mon ...

  5. html5缓存

    HTML5 提供了两种在client存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 这些都是由 coo ...

  6. ZOJ Problem Set - 3229 Shoot the Bullet 【有上下界网络流+流量输出】

    题目:problemId=3442" target="_blank">ZOJ Problem Set - 3229 Shoot the Bullet 分类:有源有汇 ...

  7. Android中App可分配内存的大小

    现在真实测试结果: 1,为了搞清楚每个应用程序在Android系统中最多可分配多少内存空间,我们使用了真机进行测试,测试机型为魅族MX4 Pro,3G内存. 测试方法是直接申请一块较大的内存空间,看应 ...

  8. 智课雅思短语---二、exert positive/ negative effects on…

    智课雅思短语---二.exert positive/ negative effects on… 一.总结 一句话总结:对…产生有利/不利的影响 1.the advantages far outweig ...

  9. 手动新建hive编程环境(以hive-1.0.0和hive-1.2.1为例)

    如下,是用maven构建项目,本篇博文重点不是这个.初学者(小白)变成小鸟后,建议开始用maven啦! Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) HBase ...

  10. NET Native

    起因源自于微软在 MSDN 博客上宣布了 .NET Native 的开发者预览版..NET Native 可以将 C# 代码编译成本地机器码.有了它,开发者将不仅能享受 C# 的高生产力,而且能拥有 ...