Asp.net MVC获取访问系统的客户端计算机的主机名和IP地址

string HostName = string.Empty;
string ip = string.Empty;
string ipv4 = String.Empty;

if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
     ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
if (string.IsNullOrEmpty(ip))
     ip = Request.UserHostAddress;

 // 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录, // 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。
foreach (IPAddress ipAddr in Dns.GetHostEntry(ip).AddressList)
{
    if (ipAddr.AddressFamily.ToString() == "InterNetwork")
    {
        ipv4 = ipAddr.ToString();
    }
}

HostName = "主机名: " + Dns.GetHostEntry(ip).HostName + " IP: " + ipv4;

  在本机进行程序代码调试测试,其中字符串ip会显示为::1,是IPv6的IP地址格式,相当于127.0.0.1。最终处理成IPv4的显示地址。

时间: 2024-10-12 23:33:06

Asp.net MVC获取访问系统的客户端计算机的主机名和IP地址的相关文章

java 获取局域网中的所有主机名和IP地址

DOS命令 命令 意义 net view 获取局域网中的所有主机名 ipconfig -all 获取本地IP,主机名,MAC地址 arp -a 获取本局域网中的所有IP地址和物理地址 ping -a x.x.x.x 获取x.x.x.x的主机名 nbtstat -a 主机名 获取MAC地址 java exec 执行外部命令 String command = "net view" Runtime r = Runtime.getRuntime(); Process p = r.exec(co

获取本地设备的主机名和ip地址

Python的socket模块提供了类的方法和实例方法,二者区别在于使用类方法时不需要创建套接字对象实例.比如,以下例子利用此模块获取主机名和ip地址. 源代码如下 #!/usr/bin/env python #python network programming cookbook --chapter -1 #This program is optimized for python 2.7 .It may run on any #other python version with/without

获取访问用户的客户端IP(适用于公网与局域网).

/**   * 获取访问用户的客户端IP(适用于公网与局域网).   */   public final String getIpAddr(final HttpServletRequest request)           throws Exception {       if (request == null) {           throw (new Exception("getIpAddr method HttpServletRequest Object is null"

[学习笔记] 理解ASP.NET MVC的路由系统

引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请求URL最终被传递给特定Controller的特定Action进行处理.而在相反的方向上,MVC框架的渲染器同样要利用这张路由表,生成最终的HTML页面并返回URL.所以,理解整个ASP.NET MVC的路由系统,有两个必须出现的关键元素:Controller与Action,有两个方向的操作:传入的

JAVA获取访问用户的客户端IP(适用于公网与局域网)

/** * 获取访问用户的客户端IP(适用于公网与局域网). */ public static final String getIpAddr(final HttpServletRequest request) throws Exception { if (request == null) { throw (new Exception("getIpAddr method HttpServletRequest Object is null")); } String ipString = r

ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素

Bootstrap提供了一套丰富CSS设置.HTML元素以及高级的栅格系统来帮助开发人员快速布局网页.所有的CSS样式和HTML元素与移动设备优先的流式栅格系统结合,能让开发人员快速轻松的构建直观的界面并且不用担心在较小的设备上响应的具体细节. Bootstrap 栅格(Grid)系统 在移动互联网的今天,越来越多的网站被手机设备访问,移动流量在近几年猛增.Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.

asp.net mvc源码分析-ModelValidatorProviders 客户端的验证

几年写过asp.net mvc源码分析-ModelValidatorProviders 当时主要是考虑mvc的流程对,客户端的验证也只是简单的提及了一下,现在我们来仔细看一下客户端的验证. 如图所示, 首先我们要知道这里的data-val这些属性是在哪里生成的?可以肯定是在mvc后台生成的, @Html.PasswordFor(m => m.Password) 生成input @Html.ValidationMessageFor(m => m.Password) 生成span 调用层级关系:

asp.net MVC获取浏览器状态案例

本文介绍通过HttpWebResponse 来获取访问地址返回的状态. public ActionResult MonitoringAJAX() { string url="www.baidu.com";//可以正常访问的网址   string url="www.laibxw.com";//不能正常访问的网址 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://&qu

在Asp.net MVC中访问静态页面

有时候由于一些特殊的需要,我们需要在MVC中访问HTML页面,假如您将这个页面放在Views中的话,去访问将会收到一个404,但是放在Views外面的目录则不受此限制. 那么我们就来解决View里面的HTML页面访问问题: 首先Views目录下有一个Web.config是用来管理本目录下文件的访问行为的,里面有个配置节handlers,默认是将所有的请求都指给MVC的处理引擎,那么在这里我们需要让他只处理指定的后缀,比如:.cshtml,那么该配置应该改为: <handlers> <re