是否有1行方法来获取服务器的IP地址?
由于
答案 0 :(得分:57)
Request.ServerVariables["LOCAL_ADDR"];
来自docs:
返回请求所在的服务器地址。这对于可能有多个绑定到计算机的IP地址的计算机很重要,并且您想要找出请求使用的地址。
这与客户端计算机相关的远程地址不同。
答案 1 :(得分:6)
从搜索网上我发现以下代码:(我找不到单行方法)
string myHost = System.Net.Dns.GetHostName();
// Show the hostname
MessageBox.Show(myHost);
// Get the IP from the host name
string myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[index].ToString();
// Show the IP
MessageBox.Show(myIP);
- >其中 index 是您的IP地址主机的索引(即网络连接)。
代码来自:http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html
答案 2 :(得分:2)
正如其他人发布的那样,System.Net.Dns.GetHostEntry
是要走的路。当您访问AddressList
属性时,您需要考虑AddressFamily
属性,因为它可能会返回IPv4和IPv6结果。
答案 3 :(得分:0)
在PC上运行此代码时,此方法将返回您的计算机公共IP地址,当您在服务器上部署应用程序时,将返回服务器IP地址。
public static string Getpublicip()
{
try
{
string externalIP = "";
var request = (HttpWebRequest)WebRequest.Create("http://icanhazip.com.ipaddress.com/");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
externalIP = new WebClient().DownloadString("http://icanhazip.com");
return externalIP;
}
catch (Exception e)
{
return "null";
}
}