d

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using System.Text;
using System.Runtime.InteropServices; /// <summary>
///NetHelper 的摘要说明
/// </summary>
public class NetHelper
{
public NetHelper()
{ } public static string GetBrowserType()
{
return HttpContext.Current.Request.Browser.Type;
} public static string GetSysVersion()
{
string Agent = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"]; if (Agent.IndexOf("NT 4.0") > )
{
return "Windows NT ";
}
else if (Agent.IndexOf("NT 5.0") > )
{
return "Windows 2000";
}
else if (Agent.IndexOf("NT 5.1") > )
{
return "Windows XP";
}
else if (Agent.IndexOf("NT 5.2") > )
{
return "Windows 2003";
}
else if (Agent.IndexOf("NT 6.0") > )
{
return "Windows Vista";
}
else if (Agent.IndexOf("WindowsCE") > )
{
return "Windows CE";
}
else if (Agent.IndexOf("NT") > )
{
return "Windows NT ";
}
else if (Agent.IndexOf("9x") > )
{
return "Windows ME";
}
else if (Agent.IndexOf("") > )
{
return "Windows 98";
}
else if (Agent.IndexOf("") > )
{
return "Windows 95";
}
else if (Agent.IndexOf("Win32") > )
{
return "Win32";
}
else if (Agent.IndexOf("Linux") > )
{
return "Linux";
}
else if (Agent.IndexOf("SunOS") > )
{
return "SunOS";
}
else if (Agent.IndexOf("Mac") > )
{
return "Mac";
}
else if (Agent.IndexOf("Linux") > )
{
return "Linux";
}
else if (Agent.IndexOf("Windows") > )
{
return "Windows";
}
return "unknow"; } /// <summary>
/// 如果有代理那么越过代理直接取值
/// </summary>
/// <returns></returns>
public static string GetClientIp()
{
if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
else
return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
} public static string GetHostName(string ipStr)
{ string hostName = string.Empty;
try
{
System.Net.IPAddress ip = System.Net.IPAddress.Parse(ipStr);
System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry(ip);
hostName = host.HostName;
}
catch
{ }
return hostName;
} [DllImport("Iphlpapi.dll")]
static extern int SendARP(Int32 DestIP, Int32 SrcIP, ref Int64 MacAddr, ref Int32 PhyAddrLen);
[DllImport("Ws2_32.dll")]
static extern Int32 inet_addr(string ipaddr);
/// <summary>
/// SendArp获取MAC地址
/// </summary>
/// <param name="RemoteIP">目标机器的IP地址如(192.168.1.1)</param>
/// <returns>目标机器的mac 地址</returns>
public static string getMacAddr_Remote(string RemoteIP)
{
StringBuilder macAddress = new StringBuilder();
try
{
Int32 remote = inet_addr(RemoteIP);
Int64 macInfo = new Int64();
Int32 length = ;
SendARP(remote, , ref macInfo, ref length);
string temp = Convert.ToString(macInfo, ).PadLeft(, '').ToUpper();
int x = ;
for (int i = ; i < ; i++)
{
if (i == )
{
macAddress.Append(temp.Substring(x - , ));
}
else
{
macAddress.Append(temp.Substring(x - , ) + "-");
}
x -= ;
}
return macAddress.ToString();
}
catch
{
return macAddress.ToString();
}
}
}

程序员的基础教程:菜鸟程序员

c# 获取客户端ip、mac、机器名、操作系统、浏览器信息的更多相关文章

  1. asp.net获取客户端IP,Mac

    public class GetClientInfo { [DllImport("Iphlpapi.dll")] private static extern int SendARP ...

  2. JS获取客户端IP地址、MAC和主机名七种方法

    一.使用JS获取客户端IP的几个方法方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000).获取客户端IP代码:<HTML><HEAD ...

  3. JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome.FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本. ...

  4. JS获取客户端IP地址、MAC和主机名【转】

    JS获取客户端IP地址.MAC和主机名 引用:JS获取客户端IP地址.MAC和主机名的7个方法汇总 利用搜狐接口 <html> <head> <meta http-equ ...

  5. JAVA获取客户端IP地址和MAC地址

    1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...

  6. 获取客户端网卡MAC地址和IP地址实现JS代码

    获取客户端网卡MAC地址和IP地址实现JS代码 作者: 字体:[增加 减小] 类型:转载   获取客户端的一些信息,如IP和MAC,以结合身份验证,相信很多人都会这样做吧,我们这里用Javascrip ...

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

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

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

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

  9. JAVA获取客户端IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  10. C# WebApi 获取客户端ip地址

    转自:http://www.cnblogs.com/weixing/p/5674078.html References required: HttpContextWrapper - System.We ...

随机推荐

  1. Java [Leetcode 383]Ransom Note

    题目描述: Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 al ...

  2. C#操作带名称空间的xml

    以前操作xml一般用下面这种方式: 好处是XDocument 能使用linq xmlPath = “path”; XDocument myXDoc = XDocument.Load(xmlPath); ...

  3. ArcGIS破解配置及oracle文件配置

    1.破解配置 2.oracle文件配置

  4. FastAdmin CMS 插件相关文章收集(2018-08-16)

    FastAdmin CMS 插件相关文章收集(2018-08-16) CMS内容管理系统(含小程序) 介绍 https://www.fastadmin.net/store/cms.html CMS内容 ...

  5. JUnit测试,获取Spring MVC环境

    @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(locations = { &qu ...

  6. Ubuntu15.10下Hadoop2.6.0伪分布式环境安装配置及Hadoop Streaming的体验

    Ubuntu用的是Ubuntu15.10Beta2版本,正式的版本好像要到这个月的22号才发布.参考的资料主要是http://www.powerxing.com/install-hadoop-clus ...

  7. Ubuntu14.04安装Matlab2014a

    尝试在Ubuntu14.04下安装matlab2014a已经有两天了,即便是照着csdn上的步骤进行安装依然出现了不少问题,究其原因是对linux下的命令不理解,下面就自己摸索结合博客内容总结一下安装 ...

  8. Instantiate实例化的注意事项

    _obj= Resources.Load("xxx") as GameObject;Instantiate(_obj); 这里的_obj对象和 _obj= Instantiate( ...

  9. unittest之跳过用例(skip) (含如何调用类里面函数相互调取变量的方法)

    当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没 ...

  10. Linux面试题大全(带答案)

    一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 索引节点来标识. ...