WebRequest получает создание от другого IP вместо мою систему IP?
-
01-10-2019 - |
Вопрос
У меня есть следующий код, который обходит прокси-сервер для локального компьютера, а затем отправить веб-трексест.
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";
}
Теперь, когда я пытался выполнить, что я получил 403 ошибок. Поэтому я проверил в журнале сервера и обнаружил, что запрос HTTP / 1.0 приходит форма IP 172.24.1.87
Пока мой IP 172.24.17.220
.
Есть ли способ избежать этого? Я думаю, что это корневая причина по ошибке 403.
Пожалуйста помоги. Спасибо,
Преподаватель
Решение
Этот IP-адрес - это адрес вашего прокси ... и вы устанавливаете прокси для веб-запроса на веб-запрос, чтобы быть таким прокси.
Почему вы ожидаете, что это не использовать прокси?
Обратите внимание, что вы обходили запросы к Местная машина, не от Местная машина, если это была ваша точка растерянности.
Редактировать: если вы действительно хотите знать, что происходит, получить Wireshark Что позволит вам увидеть все пакеты, приходящие с вашей машины.
Если вы хотите указать «Не используйте прокси», то сделайте что-нибудь вроде:
request.Proxy = GlobalProxySelection.GetEmptyWebProxy();
Другие советы
Httpwebrequest имеет значение по умолчанию для его прокси-сервера, это всегда является результатом webRequest.getsystemwebproxy (), который является прокси, который вы настроили в IE
Если вы не хотите использовать прокси, вам нужно переопределить прокси по умолчанию
Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);
Request.Proxy = null;