我需要从ASP站点获取通过RDP / TS连接的用户的客户端IP。
我尝试过从标头中提取数据。
Request.ServerVariables["REMOTE_HOST"]
10.2.0.1 Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
[空白] Request.ServerVariables["REMOTE_ADDR"]
10.2.0.1 Request.UserHostAddress
10.2.0.1 我也尝试了这些方法。
public static string getIP()
{
string ips = string.Empty;
string hostName = HttpContext.Current.Request.UserHostAddress.ToString();
IPAddress[] ipAddresses = Dns.GetHostAddresses(hostName);
foreach (IPAddress ipAddress in ipAddresses)
{
ips += ipAddress + "<br />";
}
return ips;
}
返回10.2.0.1。
public static string GetIPAddress()
{
string ipAddress = "";
string Hostname = Environment.MachineName;
IPHostEntry Host = Dns.GetHostEntry(Hostname);
foreach (IPAddress IP in Host.AddressList)
{
if (IP.AddressFamily == AddressFamily.InterNetwork)
{
ipAddress= Convert.ToString(IP);
}
}
return ipAddress;
}
返回10.1.0.1。
由于从用户的物理客户端到TS到网络服务器之间存在额外的跳跃,是否有可能返回10.3.0.1?另一种语言(例如PHP)有可能吗?