Datenpaket über proxy versenden geschlossen 

Status
Für weitere Antworten geschlossen.

xparet0209

Registered +
Registriert
Okt. 2007
Beiträge
435
hi
ich habe ein datenpacket über wireshark aufgezeichnet und möchte es halt über ein c# programm über proxy abschicken
ich würde gerne die proxy list mit copy & paste einfügen können...
leider habe ich noch keine genaue vorstellung wie ich es realisiern soll, wobei das größte probelm momentan bei mir die sachem mit dem datenpacket wäre...

könnte mir jmd dabei helfen?
mfg xparet0209
 
Ist von xsc, aber warum alles mehrmals schreiben?

Code:
Das WebProxy-Objekt

Erster Schritt hierbei ist die Erstellung eines Objektes der Klasse System.Net.WebProxy. Hierzu brauchen wir die Adresse des Servers (ggf. seine IP) und den Port, über den er erreicht werden kann:

System.Net.WebProxy proxy =
new System.Net.WebProxy("http://:
", true);

Der zweite Parameter des Konstruktors gibt an, ob der Proxy für lokale Verbindungen (z.B. zu Testzwecken auf “http://localhost/”) umgangen werden soll.

Authentifizierung

Für die Authentifizierung, also für alle nicht-anonymen Proxies, muss ein System.Net.NetworkCredential-Objekt mit den entsprechenden Zugangsdaten erstellt und dem Proxy-Objekt zugewiesen werden:

System.Net.NetworkCredential auth =
new System.Net.NetworkCredential("", "
");
proxy.Credentials = auth;

Mithilfe eines so konfigurierten Proxy-Objektes kann man nun entweder mithilfe der HttpWebRequest-Klasse HTTP-Anfragen senden, oder mithilfe der WebClient-Klasse Dateien herunterladen – beides über die von uns gewählte Zwischenstation.

HTTP-Requests über einen Proxy

System.Net.HttpWebRequest request =
(System.Net.HttpWebRequest) System.Net.WebRequest.Create("");
request.Proxy = proxy;
System.Net.HttpWebResponse response =
(System.Net.HttpWebResponse) request.GetResponse();
...

Datei-Download mit Proxy

System.Net.WebClient client = new System.Net.WebClient();
client.Proxy = proxy;
client.DownloadFile("", "");
 
ok das mit dem proxy hab ich soweit hinbekommen

aber ich möchte etwas zum server hinsenden

im wireshark protokoll steht unter "hypertext transfer protocol" noch was anderes:
Line-based text data: application/x-www-form-urlencoded
vote=true&poll_id=5&poll_5=50

wie bekomme ich das jetzt hin?
 
Mit dem MIME-Typ „application/x-www-form-urlencoded“ können URL-kodierte Daten gekennzeichnet werden. Bei der Übermittlung von Web-Formularangaben mittels der POST-Methode wird dieser MIME-Typ als Inhaltstyp (Content-Type) angegeben.

Also einfach einen Post-Request absetzen:
Code:
HttpWebRequest request=
(HttpWebRequest)WebRequest.Create(
"http:\\www.blabla.com\services\service1.asp"
);

ASCIIEncoding encoding=new ASCIIEncoding();
string postData="username=foo";
postData += ( "&password=boo");
byte[] data = encoding.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

Stream newStream = request.GetRequestStream();
newStream.Write(data,0,data.Length);
newStream.Close();
 
iwie funtioniert das mit den proxy nicht so ganz
wenn ich den proxy rausnehmen dann geht alles ohne probleme
aber mit proxy geht es dann auf einmal nciht mehr...

ich hab einfach geschrieben:


HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://***");
myRequest.Proxy = proxy; //webproxy array
myRequest.Method = "POST";
myRequest.ContentType = " application/x-www-form-urlencoded";
myRequest.ContentLength = byteArray.Length; ein text


Stream newStream = myRequest.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();

einige wenige proxys verursachen kein problem
aber bei den meisten entsteht dann ein fehler:
System.Net.WebException wurde nicht behandelt.
Message="Die Verbindung mit dem Remoteserver kann nicht hergestellt werden."
Source="System"
StackTrace:
bei System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
bei System.Net.HttpWebRequest.GetRequestStream()
bei vote_for_050.Form1.button1_Click(Object sender, EventArgs e) in D:\Users\xparet0209\Desktop\vote_for_050\vote_for_050\vote_for_050\Form1.cs:Zeile 78.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei vote_for_050.Program.Main() in D:\Users\xparet0209\Desktop\vote_for_050\vote_for_050\vote_for_050\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Net.Sockets.SocketException
Message="Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat 66.63.165.11:3128"
Source="System"
ErrorCode=10060
NativeErrorCode=10060
StackTrace:
bei System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
bei System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
bei System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
InnerException:

heißt das jetzt das der proxy server down ist?
denn wenn ich 66.63.165.11 an pinge funzt eigentlich alles

und wie kann ich mehrer request gleichzeitig anfordern?
 
Zuletzt bearbeitet von einem Moderator:
Ping hilft hier nicht viel weiter.
Das Protokoll ist ICPM.
Der Port ist 7 (da bin ich mir nicht sicher).

Der sagt also nichts über einen Proxy aus.
Besser ist mal der Versuch ein Telnet zu machen.
Dann kannst Du wenigstens sagen, ob jemand am Port "lauscht".
 
nja egal ich fang die einfach per try - catch ab
es gibts ja genug proxys

aber danke für deine hilfe :)

~closed~
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Zurück
Oben Unten