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. The Pragmatic Programmer 摘要评注

    这本书与其说是一本编程书,倒不如说是一本教做人的书.很多时候项目的进行依赖于技术以外的因素,比如说沟通,人的品格,人际,处理问题的方法.在未来的一度日子会陆续添加个人认为值得学习的内容.

  2. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\....\App_Web_default.aspx.cdcab7d2.zii776dc.dll”--“拒绝访问。 ”

    关于访问asp.net站点出现以下问题的解决办法: 问题: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Tempora ...

  3. 记一次愚蠢的gradle操作

    今晚把工作移植到mac平台,在用gradle命令 exec ./gradlew --parallel --info assembleDebug 打包apk时卡住,gradle一直处于下载状态,过了几分 ...

  4. 对django整个网站搭建文件的总结

    1.比方说现在是写一个使用HTTP 2.0的HTTP服务器,在不改变现有程序配置的情况下,需要重新编译HTTP服务器,比方说,用的是Nginx服务器,需要隐藏服务器版本,如果想要小绿锁 也就是网站安全 ...

  5. Visual Studio Code如何调试代码

    首先安装扩展调试插件debugger for chrome 点击瓢虫按钮,进行调试项目的配置,点击配置按钮 选择Chrome环境, 会弹出Chrome调试配置文件launch.json,修改下端口即可 ...

  6. centos安装PHP-pdo支持pdo

    #yum install php-pdo phpinfo()查看PDO

  7. 异常mongodb:Invalid BSON field name XXXXXX:YYYYY.zz

    1.本周遇到这个问题. 定位到发现一个很神奇的现象上面的结构无法顺利以map的key值存入mongodb里面. 而且到线上才发现这个问题. 而且是部分用户才会出现这样的情况 大部分人的该数据是这样的 ...

  8. DataGrid方法标注

    在VS2010中无法增加了CColumn和Ccolumns类 解决方案,方案名->右击->添加类->ActiveX控件中的MFC类->添加弹出了“从ActiveX控件添加类向导 ...

  9. 1039 Course List for Student

    题意:给出K门课程(编号1~K)以及报名该课程的学生,然后有N个学生查询,对于每一个查询,输出该学生所报的相关课程编号,且要求编号按增序输出. 思路:题目不难,解析略.(本来用map直接映射,用STL ...

  10. 1084 Broken Keyboard

    题意:给出两个字符串(有字母,数字和下划线_组成),第一个字符串str1是由键盘输入的字符串,第二个字符串str2是屏幕显示的字符串,问键盘有哪几个按键坏了,根据输入的顺序,输出坏掉的键(仅输出一次) ...