具体来说,我使用Essential Objects HtmlToPdf创建PDF。需要获得本地IP地址(192.168.x.x)
当用户点击“创建”按钮时,我需要获取服务器的非NAT IP地址(192.168.xx),以便我可以强制它从该地址创建PDF,而不是主机名称。
总体问题是:在Web服务器上,该站点的主机名实际上并不会让您访问该站点,因为DNS指定了外部IP地址,该地址以某种方式导致连接被阻止。因此,例如 - www.testsite.com正在转换为公共IP地址,因此服务器上的PDF创建者无法访问该地址。
我创建了一个主机文件条目,强制www.testsite.com转到内部IP。但这对于多个安装来说是一场噩梦。
我试图
string hostName = HttpContext.Current.Request.Url.Host;
IPHostEntry ipAddressList = Dns.GetHostEntry(hostName);
string ipAddress = "";
foreach (IPAddress ip in ipAddressList.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
ipAddress = ip.ToString();
break;
}
}
但是返回DNSed IP(外部),然后在防火墙的NAT是在IP我想要的。
说你的问题是“紧急的”是获得降薪的最好方法,FYI。 – Blorgbeard
已注意。谢谢... – vinco83
如果你知道你特别想要内部IP,你不能在foreach中应用if来寻找内部IP吗? – OSborn