我有一个问题,我一直在绞尽脑汁,我不确定这是一个问题还是设计的问题。我的Web服务器(IIS 8.5)上有几个HTTPS网站,它们都有自己的IP地址。我遇到的问题是用户将连接到网站1(例如10.1.1.3),并且使用网站2的IP地址(10.1.1.4)将对数据库或Web服务进行出站呼叫而不是使用自己的IP地址或服务器的主地址(10.1.1.2)。因此,当您查看日志时,它会使网站2看起来像是连接到所有这些不同的服务器,因为它们与代码中的这些服务器没有任何联系。我错过了什么吗?这会导致防火墙规则和日志记录出现问题。
答案 0 :(得分:0)
出站流量的IP可能会从包装盒上的任何地址中提取。有一些方法可以改变这种行为,但它们需要一些代码来实现。通过使用ServicePoint.BindIPEndPointDelegate Property设置BindIPEndPoint Delegate,可以覆盖请求的源地址。
public delegate IPEndPoint BindIPEndPoint(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount);
private IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
{
IPAddress localIPAddress;
if (retryCount < 3)
{
localIPAddress = IPAddress.Parse("1.2.3.4");
}
else
{
localIPAddress = IPAddress.Any;
}
return new IPEndPoint(localIPAddress, 0);
}
request.ServicePoint.BindIPEndPointDelegate = new System.Net.BindIPEndPoint(BindIPEndPointCallback);
答案 1 :(得分:0)