IIS 8.5中用于出站流量的IP不正确

时间:2017-09-28 16:06:32

标签: asp.net iis iis-8.5

我有一个问题,我一直在绞尽脑汁,我不确定这是一个问题还是设计的问题。我的Web服务器(IIS 8.5)上有几个HTTPS网站,它们都有自己的IP地址。我遇到的问题是用户将连接到网站1(例如10.1.1.3),并且使用网站2的IP地址(10.1.1.4)将对数据库或Web服务进行出站呼叫而不是使用自己的IP地址或服务器的主地址(10.1.1.2)。因此,当您查看日志时,它会使网站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)