1. 程式人生 > >獲得計算機名稱(HostName)和IP地址(Addresses)

獲得計算機名稱(HostName)和IP地址(Addresses)



    在修改學生端的時候,寫ip的時候真的難道了,一直用以前的方法來,出現了顯示不對。如圖:

        我用了很多方法來試驗:

//////////////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</span>
</span>


 我取出來的的數字::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];

 結果為: