【问题标题】:Having multiple outgoing IPs in IIS?在 IIS 中有多个传出 IP?
【发布时间】:2013-09-20 11:19:37
【问题描述】:

如您所知,Windows Server 2008 R2 上只有一个传出 IP,但我有 10 个网站在 IIS 虚拟目录上运行,服务器上也有 10 个不同的 IP,现在我想做每个网站都有不同的传出 IP同时。可能吗?你知道通过 HTTP 以编程方式获取/发布。

我还阅读了下面的文章,但它是用于设置一个默认的传出 IP。 http://support.microsoft.com/kb/2386184

通过编程怎么样?有没有办法通过特定IP发送请求?

非常感谢。

【问题讨论】:

    标签: iis


    【解决方案1】:

    您可以为同一站点配置一个 IP 地址或多个 IP 地址。同样,您可以为一个 IP 地址配置一个网站或为一个 IP 地址配置多个网站。唯一的限制是使用 HTTPS。

    这篇 Microsoft 文章讨论了如何为(每个)网站配置 IP 地址。尽管它说它适用于 Server 2003,但配置在最近 2 个修订版中并没有太大变化。 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/e4b7db43-2e10-4939-b888-a7b439af7fef.mspx?mfr=true


    在您提到的文章中,它谈到了使用 NETSH 命令 (shell) 来设置一个传出路径(使用 skipassource 标志)。要将所有 IP 地址用于出站流量,只需执行相反的操作:

    Netsh int ipv4 add address <Interface Name> <ip address> skipassource=false
    

    【讨论】:

    • 问题是出站IP,配置后你可以看到你的机器只有1个出站IP,所有不同IP的网站都从一个IP出站。
    • 您是否尝试删除所有传入路由(名称、IP 地址、* 等),每个站点的(单个)IP 地址除外?您正在采取什么措施来检测这种情况?
    【解决方案2】:

    答案是:

    httpWebRequest.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(BindIPEndPointCallback); 
    
    
     public IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
        {
            if (retryCount < 3)
                return new IPEndPoint(IPAddress.Parse(servicePointIP), 0);
            else
                return new IPEndPoint(IPAddress.Any, 0);
        }
    
     private string servicePointIP;
        public string ServicePointIP
        {
            get { return servicePointIP; }
            set { servicePointIP = value; }
        }
    

    【讨论】:

      猜你喜欢
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2011-06-27
      • 1970-01-01
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多