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 ...
随机推荐
- twig 模板引擎使渲染视图更加优雅
在使用 laravel 的时候接触过 blade 模板引擎.在学习的时候,接触到了另外一个强大的模板引擎:twig 官网:https://twig.sensiolabs.org/ 中文手册:http: ...
- caioj 1078 动态规划入门(非常规DP2:不重叠线段)(状态定义问题)
我一开始想的是前i个区间的最大值 显然对于当前的区间,有不选和选两种情况 如果不选的话,就继承f[i-1] 如果选的话,找离当前区间最近的区间取最优 f[i] = max(f[i-1, f[j] + ...
- Unity C# 设计模式(三)工厂方法模式
定义: 定义一个创建对象的接口(父类),由子类决定需要实例化哪一个类. 这样,核心工厂类成为了一个抽象角色,不再负责产品的创建,仅提供具体工厂类所必须实现的接口,这样进一步抽象化的好处是使得工厂方法模 ...
- POJ 2241 The Tower of Babylon
The Tower of Babylon Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Or ...
- UVA10269 Adventure of Super Mario(Floyd+DP)
UVA10269 Adventure of Super Mario(Floyd+DP) After rescuing the beautiful princess, Super Mario needs ...
- WIN10远程桌面连接--“出现身份验证错误。要求的函数不支持”
最近WIN10升级补丁后发现远程桌面无法连接了,报“出现身份验证错误.要求的函数不支持”的错误: 解决办法: 第一种,配置本地自己的电脑,开始菜单->搜索gpedit.msc并打开 打开配置 ...
- linux内核计算时间差以及jiffies溢出
jiffies是每一个时钟中断,都会加1.这就导致一个问题.不管jiffies(一般来说是unsigned long类型)多少个字节,总有溢出的时候. 更极端的时候.当期jiffies是0xfffff ...
- 20.发送http请求服务 ($http)
转自:https://www.cnblogs.com/best/tag/Angular/ 服务从代码直接与服务器进行交互,底层是通过实现,与中http服务从AngularJS代码直接与Web服务器进行 ...
- 不允许 ASSIGNMENT 语句中包含 FOR XML 子句。
DECLARE @guidList NVARCHAR(max) SELECT @guidList=( CAST(OrderGUID AS nvarchar(max)) +',') FROM Order ...
- 如何解决SQL Server 2008 无法连接到(local)
打开SQL SERVER配置管理-->SQL SERVER 网络配置-->实例名的协议 将SQLEXPRESS协议中的Named Pipes和 TCP/IP启用. 点击SQL Se ...