aspnet獲取伺服器ip
『壹』 asp.net 獲取伺服器信息
using System.Management;
string stringMAC = "";
string stringIP = "";
ManagementClass MC = new ManagementClass "Win32_NetworkAdapterConfiguration");
ManagementObjectCollection MOC= MC.GetInstances();
foreach(ManagementObject MO in MOC)
{
if ((bool)MO["IPEnabled"] == true)
{
stringMAC += MO["MACAddress"].ToString();
TextMAC.Text = stringMAC.ToString();
string[] IPAddresses = (string[]) MO["IPAddress"];
if(IPAddresses.Length > 0)
stringIP = IPAddresses[0];
TextIP.Text = stringIP.ToString();
}
}
另外,虛機團上產品團購,超級便宜
『貳』 ASP.NET 怎麼獲取客戶端的外網IP地址,急~
在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 來取得客戶端的IP地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的IP地址,而不是真正的客戶端IP地址。
要想透過代理伺服器取得客戶端的真實IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。
不過要注意的事,並不是每個代理伺服器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的IP。
還有一點需要注意的是:如果客戶端沒有通過代理伺服器來訪問,那麼用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值將是空的。因此,如果要在程序中使用此方法,可以這樣處理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......
//方法一
HttpContext.Current.Request.UserHostAddress;
//方法二
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
//方法三
string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
//方法四(無視代理)
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
客戶端:
//方法五
var ip = '<!--#echo var="REMOTE_ADDR"-->';
alert("Your IP address is "+ip);
//方法六(無視代理)
function GetLocalIPAddress()
{
var obj = null;
var rslt = "";
try
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj = null;
}
catch(e)
{
//
}
return rslt;
}
來自印度的MCT Maulik Patel提供了一種服務端的解決方案,很好:
if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // 伺服器, using proxy
{
得到真實的客戶端地址
ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.
}
else//如果沒有使用代理伺服器或者得不到客戶端的ip not using proxy or can't get the Client IP
{
得到服務端的地址
ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.
}
有些客戶端會因為「header_access deny」的安全設置而不發給我們Ip
『叄』 asp.net 怎麼獲取客戶端真實 IP
asp.net中獲取客戶端ip地址的兩種方法方法一:/// <summary /// 獲取用戶登錄IP /// </summary /// <returns</returns string GetIp(){//可以透過代理伺服器 string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null || userIP == ""){//沒有代理伺服器,如果有代理伺服器獲取的是代理伺服器的IP userIP = Request.ServerVariables["REMOTE_ADDR"];}return userIP;}方法二:(很抱歉,這種方法獲取的是伺服器端的IP) //需要using System.Net; string hostname = Dns.GetHostName();//伺服器的用戶名 Response.Write("HostName:"+hostname); IPAddress[] address = Dns.GetHostAddresses(hostname);//獲取伺服器端IP列表,第一IP是address[0] IPEndPoint ipendpoint = new IPEndPoint(address[0], 1234);
『肆』 ASP.NET 頁面登錄時獲取IP地址。【要所有的方法、】
你可以參考以下的代碼試試
/// <summary>
/// 獲取遠程訪問用戶的Ip地址
/// </summary>
/// <returns>返回Ip地址</returns>
protected string GetLoginIp()
{
string loginip = "";
//Request.ServerVariables[""]--獲取服務變數集合
if (Request.ServerVariables["REMOTE_ADDR"] != null) //判斷發出請求的遠程主機的ip地址是否為空
{
//獲取發出請求的遠程主機的Ip地址
loginip = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
//判斷登記用戶是否使用設置代理
else if (Request.ServerVariables["HTTP_VIA"] != null)
{
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
//獲取代理的伺服器Ip地址
loginip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
//獲取客戶端IP
loginip = Request.UserHostAddress;
}
}
else
{
//獲取客戶端IP
loginip = Request.UserHostAddress;
}
return loginip;
}
『伍』 ASP.NET怎麼可以獲取的IP代碼
在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 來取得客戶端的 IP 地址,但如果客戶端是使用代理服務
器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理伺服器取得客戶端的真實
IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。
不過要注意的事,並不是每個代理伺服器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的 IP。
還有一點需要注意的是:如果客戶端沒有通過代理伺服器來訪問,那麼用 Request.ServerVariables
("HTTP_X_FORWARDED_FOR") 取到的值將是空的。因此,如果要在程序中使用此方法,可以這樣處理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......
即:如果客戶端通過代理伺服器,則取 HTTP_X_FORWARDED_FOR 的值,如果沒通過代理伺服器,就取 REMOTE_ADDR 的值。
『陸』 asp.net怎麼獲取伺服器端得到訪問者的外網IP
Request.UserHostAddress
在controller的action中直接用這個獲取用戶的公網IP。
『柒』 asp.net網站發布到伺服器之後,獲取的客戶端IP都是127.0.0.1,為什麼
publicstringIPAddress()
{
stringresult=String.Empty;
result=HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
if(!string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(!string.IsNullOrEmpty(result))
{
//可能有代理
if(result.IndexOf(".")==-1)//沒有"."肯定是非IPv4格式
result=null;
else
{
if(result.IndexOf(",")>=0)
{
//有",",估計多個代理。取第一個不是內網的IP。
result=result.Replace("","").Replace("'","").Replace(";","");
string[]temparyip=result.Split(',');
for(inti=0;i<temparyip.Length;i++)
{
if(IsIPAddress(temparyip[i]))
{
if(!temparyip[i].StartsWith("10.")&&!temparyip[i].StartsWith("192.168")&&!temparyip[i].StartsWith("172.16."))
{
result=temparyip[i];//找到不是內網的地址
break;
}
}
}
}
if(!IsIPAddress(result))//代理即是IP格式
{
result=null;//代理中的內容非IP,取IPk
}
}
}
}
else
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.UserHostAddress;
}
if(string.IsNullOrEmpty(result))
{
result="000.000.000.000";
}
returnresult;
}
『捌』 asp.net怎麼獲取客戶端的IP地址,不是伺服器的ip
if HttpContext.Current.Request.UserHostAddress 為空
else
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
『玖』 asp.net怎麼獲取當前登錄用戶的ip地址
你用本機測試肯定會是127.0.0.1 的 即使修改了host裡面的也不行 換台電腦試試就行了