【发布时间】:2015-10-22 21:15:25
【问题描述】:
我在使用 C# 获取完整 IP 地址时遇到了一些问题。当我通过单击按钮调用 C# Web 方法时,它会在 JavaScript 警报框中显示(或应该)IP 地址。我得到的不是 IP 地址,而是 ::1。我通过 Visual Studio 2015 社区运行它。这是我的代码:
[WebMethod]
public string getIPAddress()
{
// this method gets the ip address by using the server variables
// in C# to capture the data from the client
HttpContext context = HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
以及处理按钮点击的方法:
// display the ip address to the user if the button is clicked (display it via a javascript alert box)
public void IpAddress(object sender, EventArgs e)
{
Data d = new Data();
Response.Write("<script type=\"text/javascript\">alert('" + d.getIPAddress() + "');</script>");
}
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
那是一个完整的IP地址;它是 IPv6 本地主机。
-
有什么方法可以获取 IPv4 地址还是不可能?
标签: javascript c#