知识大全 .net通过获取客户端IP地址反查出用户的计算机名

Posted 计算机

篇首语:一日之计在于晨,一年之计在于春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .net通过获取客户端IP地址反查出用户的计算机名相关的知识,希望对你有一定的参考价值。

.net通过获取客户端IP地址反查出用户的计算机名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  要求 内部网站某一个菜单只允许规定的域用户访问 不能用登录窗口 类似用户名密码这样的东西

  解决方法 用户点击菜单 得到IP 用NBTSTAT A IP得到客户端的计算机名 在后台程序中用正则过滤出计算机名进行判断

  下面是部分代码和解决方法 变通还是很重要的 细节不是重点 重点是想法 当然你可以把代码写的更漂亮高效 ^^

  你可以新建个页面 在后台写上下面的代码

  ////////////////////////////////////////////////////////////

  if (!IsPostBack)

  

  string strClientHostname = GetHostname(GetIP());

  if (strClientHostname == "china k " || strClientHostname == "china hjbai" )

  

  bind(); //输出结果

  

  else

  

  Page ClientScript RegisterStartupScript(this GetType() "Warning" "");

  

  

  ////////////////////////////////////////////////////////////

  //得到客户端IP

  public string GetIP()

  

  string uip = "";

  if (HttpContext Current Request ServerVariables["HTTP_VIA"] != null)

  

  uip = HttpContext Current Request ServerVariables["HTTP_X_FORWARDED_FOR"] ToString();

  

  else

  

  uip = HttpContext Current Request ServerVariables["REMOTE_ADDR"] ToString();

  

  return uip;

  

  ////////////////////////////////////////////////////////////

  public string GetHostname(string IP)

  

  string dirResults = "";

  ProcessStartInfo psi = new ProcessStartInfo();

  Process proc = new Process();

  //这里聪明的你会想到很多命令的有趣用法吧

  //psi FileName = "ping ";

  //psi RedirectStandardInput = false;

  //psi RedirectStandardOutput = true;

  //psi Arguments = " a n " + IP;

  psi FileName = "nbtstat ";

  psi RedirectStandardInput = false;

  psi RedirectStandardOutput = true;

  psi Arguments = " A " + IP;

  //这里对结果进行正则过滤 你可以在CMD窗口运行DOS命令看下结果 这样会更明了

  psi UseShellExecute = false;

  proc = Process Start(psi);

  dirResults = proc StandardOutput ReadToEnd();

  proc WaitForExit();

  dirResults = dirResults Replace("\\r" "") Replace("\\n" "") Replace("\\t" "");

  Regex reg = new Regex("china (?:[a z][a z _]*)*" RegexOptions IgnoreCase | RegexOptions Compiled);

  dirResults = dirResults ToLower();

  Match mc = reg Match(dirResults);

  //Response Write(dirResults ToLower());

  if (mc Success)

  

  return mc ToString();

  

  else

  

  //这个是正则的另一种拼接方法 因为有些计算机名比较特殊

  string re = "(china)"; // Word

  string re = "([ +]\\\\d+)"; // Integer Number

  string re = "( )"; // Any Single Character

  string re = "((?:[a z][a z _]*))"; // Variable Name

  Regex r = new Regex(re + re + re + re RegexOptions IgnoreCase | RegexOptions Singleline);

  Match mc = r Match(dirResults ToLower());

  if (mc Success)

  

  return mc ToString();

  

  else

  

  reg = new Regex("Host not found" RegexOptions IgnoreCase | RegexOptions Compiled);

  mc = reg Match(dirResults);

  if (mc Success)

  

  return "Host not found!";

  

  else

  

  return "";

  

  

  

  

cha138/Article/program/net/201311/14258

相关参考

知识大全 .NET中获取电脑名、IP地址及用户名方法

.NET中获取电脑名、IP地址及用户名方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在NE

知识大全 获取用户真实IP地址代码

获取用户真实IP地址代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取用户真实IP地址代码

知识大全 Java开发的WebService获取客户端IP地址

Java开发的WebService获取客户端IP地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 JSF/JAVA根据IP获取客户端Mac地址

JSF/JAVA根据IP获取客户端Mac地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  需要

知识大全 asp获取用户真实IP地址的方法

asp获取用户真实IP地址的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一般的程序都具备

知识大全 Java获取客户端真实IP地址的两种方法

Java获取客户端真实IP地址的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JSP

知识大全 asp.net获取URL和IP地址

asp.net获取URL和IP地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取URL: 

知识大全 ASP.NET技术获取IP与MAC地址的方法

ASP.NET技术获取IP与MAC地址的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取

知识大全 Asp.net获取客户端IP常见代码存在的伪造IP问题探讨

Asp.net获取客户端IP常见代码存在的伪造IP问题探讨  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ASP.NET获取IP与MAC地址的方法

ASP.NET获取IP与MAC地址的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!