知识大全 .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地址及用户名方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在NE
获取用户真实IP地址代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取用户真实IP地址代码
知识大全 Java开发的WebService获取客户端IP地址
Java开发的WebService获取客户端IP地址 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
JSF/JAVA根据IP获取客户端Mac地址 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 需要
asp获取用户真实IP地址的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一般的程序都具备
Java获取客户端真实IP地址的两种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JSP
asp.net获取URL和IP地址 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取URL:
ASP.NET技术获取IP与MAC地址的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取
知识大全 Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
Asp.net获取客户端IP常见代码存在的伪造IP问题探讨 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
ASP.NET获取IP与MAC地址的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!