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. Mac上vmware虚拟机Windows10安装JDK8及配置环境

    1.jdk8下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.双击下载的jdk进行安装 3.安装成功之 ...

  2. 在windows下如何新建爬虫虚拟环境和进行scrapy安装

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改.Sc ...

  3. Database Exception – yii\db\Exception

    在使用Yii2框架时遇到数据库无法访问的问题: 这个是由于 通常我们在参考 教程在 MAC OS LINUX下安装 MYSQL 时,默认将PHP.ini 中的以下三项留空导致的Yii2所需的PDO组建 ...

  4. node使用express命令报错找不到ejs的解决方法

    首先确定已经全局安装过好几遍express和express-generator,但一使用express命令直接报找不到ejs模块,全局和本地安装ejs都没用,nodemon模块报同样错误,找不到deb ...

  5. 软raid 实验

    RAID0 条带卷 2+ 100% 读写速度快,不容错 RAID1 镜像卷 2 50% 读写速度一般,容错 RAID5 带奇偶校验的条带卷 3+ (n-1)/n 读写速度快,容错,允许坏一块盘 RAI ...

  6. CentOS下安装SVN服务端

    ---恢复内容开始--- 1.使用yum安装 yum install subversion 2.创建仓库 1.创建成功后在svn下面多了几个文件夹. cd /home mkdir svn svnadm ...

  7. 题解 P3243 【[HNOI2015]菜肴制作】

    这道题看起来就是个裸的拓扑排序,抄上模板就能AC. 上面这种想法一看就不现实,然鹅我第一次还真就这么写了,然后被随意hack. 我们需要注意一句话: 现在,酒店希望能求出一个最优的菜肴的制作顺序,使得 ...

  8. ArcGIS api for javascript——加入地图并显示当前地图范围

    描述 这个示例使用Map.extent property属性接收地图范围的左下角和右上角坐标 "书签". 使用下列行创建地图: var map = new esri.Map(&qu ...

  9. Linux 下UVC&amp;V4L2技术简单介绍(二)

    通过前文Linux 下UVC&V4L2技术简单介绍(一)我们了解了UVC和V4L2的简单知识. 这里是USB设备的文档描写叙述:http://www.usb.org/developers/do ...

  10. vim 脚本之快速打印log

    " zsl_log.vim " Version: 1.0 if exists("g:zsl_loaded_log") || &cp || v:versi ...