从主机名获取IPAddress
本文关键字:IPAddress 获取 主机 | 更新日期: 2023-09-27 17:54:23
我想使用C#
在我的aspx
页面上获得主机的IP地址,我使用DNS类方法来获得这些。
它在本地工作得很好,但是当我在IIS7上部署解决方案时,它只返回由ISP分配的IP地址,但我想要该机器的本地IP地址。
任何建议吗?
这是一个例子。在本例中,我们可以获得给定主机名的IP地址。
string strHostName = "www.microsoft.com";
// Get DNS entry of specified host name
IPAddress[] addresses = Dns.GetHostEntry(strHostName).AddressList;
// The DNS entry may contains more than one IP addresses.
// Iterate them and display each along with the type of address (AddressFamily).
foreach (IPAddress address in addresses)
{
Response.Write(string.Format("{0} = {1} ({2})", strHostName, address, address.AddressFamily));
Response.Write("<br/><br/>");
}
我很有信心你不能得到本地的192.168.C。像这样的本地机器的D地址。
这是因为安全性和可见性(NAT等)。
如果您希望唯一标识一个用户。我会看会话或cookie
在公共DNS中查找ip地址时,您将获得对外通信的官方ip地址。如果使用NAT,并且您想要内部地址,则必须连接到保存内部IP地址的DNS服务器。
你可以使用这个方法…
public static String GetIP()
{
String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(string.IsNullOrEmpty(ip))
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
return ip;
}