代码之家  ›  专栏  ›  技术社区  ›  Simsons

WebRequest is getting generated from another IP instead my system IP?

  •  0
  • Simsons  · 技术社区  · 15 年前

    我有以下代码,这些代码绕过本地计算机的代理服务器,然后发送一个webrequest。

                    System.Net.HttpWebRequest Request;
                    System.Net.WebResponse Response;
                    System.Net.CredentialCache MyCredentialCache;
    

    编辑1

    //System.Net.WebProxy proxyObject = new WebProxy("http://172.24.1.87:8080",true);
    
                string strRootURI = "http://172.24.18.240/webdav/";
                string strUserName = "UsName";
                string strPassword = "Pwd";
               // string strDomain = "Domain";
                string strQuery = "";
                byte[] bytes = null;
                System.IO.Stream RequestStream = null;
                System.IO.Stream ResponseStream = null;
                System.Xml.XmlTextReader XmlReader = null;
    
                try
                {
                    // Build the SQL query.
                    strQuery = "myWebDavVerb";
    
                    // Create a new CredentialCache object and fill it with the network
                    // credentials required to access the server.
                    MyCredentialCache = new System.Net.CredentialCache();
                    MyCredentialCache.Add(new System.Uri(strRootURI), "Basic", new System.Net.NetworkCredential(strUserName, strPassword));//, strDomain)
    
    
                    // Create the HttpWebRequest object.
                    Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);
    
    
                    // Add the network credentials to the request.
                    Request.Credentials = MyCredentialCache;
    
                          // Request.Proxy = proxyObject;
                        // Specify the method.
                        Request.Method = "PROPFIND";
        }
    

    Now, while I tried executing I got 403 error. So I checked in the server log and find that the HTTP/1.0 request is coming form an IP 172.24.1.87 而我的IP是 172.24.17.220 .

    Is there a way to avoid this? I think this is the root cause of 403 error.

    请帮忙。 谢谢,

    亚母鸡

    2 回复  |  直到 15 年前
        1
  •  2
  •   Jon Skeet    15 年前

    为什么你希望它不使用代理?

    Note that you're bypassing requests the local machine, not 本地机器,如果这是你的困惑点。

    EDIT: If you really want to know what's going on, get hold of Wireshark 这会让你看到所有来自你机器的数据包。

    If you want to specify "don't use a proxy" then do something like:

    request.Proxy = GlobalProxySelection.GetEmptyWebProxy();
    
        2
  •  1
  •   marc.d    15 年前

    HttpWebRequest has a default value for its Proxy Property this is always the result of WebRequest.GetSystemWebProxy() which is the Proxy you configured in IE

    if you dont want to use a proxy you need to override the default proxy

    Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI); 
    Request.Proxy = null;
    
    推荐文章