WebRequest wird immer von einem anderen IP stattdessen mein System IP erzeugt?
-
01-10-2019 - |
Frage
Ich habe den folgenden Code, der den Proxyserver für lokale Maschine umgehen und dann eine WebRequest senden.
System.Net.HttpWebRequest Request;
System.Net.WebResponse Response;
System.Net.CredentialCache MyCredentialCache;
Bearbeiten 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";
}
Jetzt, während ich versuchte, die Ausführung habe ich 403-Fehler. Also habe ich im Serverprotokoll geprüft und feststellen, dass die HTTP / 1.0 Anfrage eine IP 172.24.1.87
kommt, während meine IP 172.24.17.220
ist.
Gibt es eine Möglichkeit, dies zu vermeiden? Ich denke, das die Ursache für Fehler 403 ist.
Bitte Hilfe. Danke,
Subhen
Lösung
Die IP-Adresse ist die Adresse des Proxy ... und Sie die Einstellung die Proxy für die Web-Anfrage, dass Proxy zu sein.
Warum sollte man erwarten, dass es nicht den Proxy zu benutzen?
Beachten Sie, dass Sie Umgehen Anfragen die lokale Maschine, nicht von der lokalen Maschine, wenn das ist dein Punkt der Verwirrung.
EDIT: Wenn Sie wirklich wissen wollen, was los ist, habhaft Wireshark , die Sie lassen sehen, alle Pakete, die von Ihrem Gerät kommen.
Wenn Sie angeben möchten, „keinen Proxy verwenden“, dann so etwas wie:
request.Proxy = GlobalProxySelection.GetEmptyWebProxy();
Andere Tipps
HttpWebRequest hat einen Standardwert für seine Proxy Property dies ist immer das Ergebnis von WebRequest.GetSystemWebProxy (), die die Proxy Sie in IE
konfiguriert istWenn Sie nicht wollen, einen Proxy verwenden, müssen Sie den Standard-Proxy außer Kraft zu setzen
Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);
Request.Proxy = null;