获得计算机名称(HostName)和IP地址(Addresses)



在修改学生端的时候,写ip的时候真的难道了,一直用以前的方法来,出现了显示不对。如图:


获得计算机名称(HostName)和IP地址(Addresses)
文章图片



我用了很多方法来试验:

//ViewData["ip"] = Request.UserHostAddress.ToString(); //本地ip动态获取得到::1 //ViewData["ip"] = System.Web.HttpContext.Current.Request.UserHostAddress.ToString(); //本地ip动态获取得到::1 //ViewData["ip"] = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; //缺少引用,没有验证 //ViewData["ip"] = Request.System.Web.HttpContext.Current.Request.UserHostAddress.ToString(); //缺少引用,没有验证 ViewData["ip"] = Request.ServerVariables["Remote_Addr"].ToString(); //本地ip动态获取得到::1


我取出来的的数字::1,是ipv6下的本地回环地址的表示。因为你访问的时候用的是localhost访问的,是正常情况。使用ip地址访问或者关闭ipv6支持都可以不显示这个。最后我换了一种方法来实现获取局域网的IP:

// 读取计算机的名称 string PcName = System.Net.Dns.GetHostName(); // 获得本机局域网IP地址 //IPAddress localAddress = Dns.GetHostAddresses(name)[0]; IPAddress localAddress1 = Dns.GetHostByName(PcName).AddressList[0]; //这句验证可以用 // IPAddress dynAddress = Dns.GetHostByName(PcName).AddressList[0];


结果为:
获得计算机名称(HostName)和IP地址(Addresses)
文章图片



【获得计算机名称(HostName)和IP地址(Addresses)】

    推荐阅读