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
WebService 获取客户端 IP 和 MAC 等信息的更多相关文章
- 获取客户端IP地址定位城市信息
获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...
- ASP.NET获取客户端IP及MAC地址
朋友最近问如何获取客户端IP及MAC地址,一直想把这段给整理一下,契机来了:下边分为了C#后台获取的方法和前台Javascript(调用ActiveX)获取的方法,大家如果有好的方法一起讨论撒O(∩_ ...
- openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息
openresty开发系列40--nginx+lua实现获取客户端ip所在的国家信息 为了实现业务系统针对不同地区IP访问,展示包含不同地区信息的业务交互界面.很多情况下系统需要根据用户访问的IP信息 ...
- [Asp.Net]获取客户端ip和mac地址
摘要 有时候,我们需要获取客户端的一些信息,以便进行统计.比如:客户端的唯一标识,ip等信息 IP 通过获取HTTP_X_FORWARDED_FOR,或者REMOTE_ADDR可以获取客户端的ip. ...
- .NET(C#)调用webService获取客户端IP地址所属区域(非异步)
功能描述: 此接口用于获取客户端访问的IP的地址所属的区域(国家,城市等).通过输入IP地址查询国家.城市.所有者等信息.没有注明国家的为中国输入参数:IP地址(自动替换 " ." ...
- (效果五)js获取客户端ip地址及浏览器信息
在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...
- c# 获取客户端ip、mac、机器名、操作系统、浏览器信息
d using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...
- 获取本地IP和mac等信息
1获取mac protected string getHostMacName() { string mac = ""; ManagementClass mc; mc = new M ...
- ASP.NET获取客户端信息,获取客户端IP等等
山上明月 ASP.NET能知道的东西 获取服务器电脑名: Page.Server.ManchineName 获取用户信息: Page.User 获取客户端电脑名:Page.Request.UserHo ...
随机推荐
- 为什么 linux 上不能用 localhost 链接数据库?
因为 linux 连接的时候不是通过 tcp 协议,而是通过 sockect 来连接.所以 写localhost 之后就会默认去找 sockect 链接[此文件在 /var/lib/mysq ...
- 超链接:a标签
a标签的功能:实现跳转功能 a标签的重要属性:href,target href的值为跳转目标的地址,如果是跳转页面的话,需要这个页面的超链接. target的值有四个:_blank._self._pa ...
- Rman备份及不完全恢复操作
最后更新时间:2018/12/18 启用归档 --检查是否为归档 SQL> archive log list; Database log mode No Archive ...
- .NET 将 .config 文件嵌入到程序集
原文:.NET 将 .config 文件嵌入到程序集 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Iron_Ye/article/details/ ...
- web——前后端通信原理
前端向后台传输数据: 传输方法:post get 区别: (1)get:用于从服务器获取数据,将参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看 ...
- 【转】CentOS下firefox安装flash说明
http://www.cnblogs.com/lamper/archive/2013/01/16/2862254.htm CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装 ...
- HDU 5386 Cover(模拟)
Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...
- bzoj1066【SCOI2007】蜥蜴
1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2512 Solved: 1238 [Submit][Statu ...
- uva 104 Arbitrage (DP + floyd)
uva 104 Arbitrage Description Download as PDF Background The use of computers in the finance industr ...
- Python爬虫爬取一篇韩寒新浪博客
网上看到大神对Python爬虫爬到非常多实用的信息,认为非常厉害.突然对想学Python爬虫,尽管自己没学过Python.但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频.共三集,第一节讲爬取 ...