Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 13:43

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Proxy- Checker

Discussion on Proxy- Checker within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
The_Dentist's Avatar
 
elite*gold: 13
Join Date: Nov 2014
Posts: 71
Received Thanks: 4
Proxy- Checker

Hallo,

Ich habe mal eine Frage und zwar schreibe ich gerade ein Methode die eine Liste mit Proxys durchgeht. Die Methode soll diejenigen Proxys einer Liste hinzufügen, welche erfolgreich getestet wurden.

Die Methode wird in einem Thread aufgerufen, nun muss ich ein Feedback von der Methode bekommen, welches mir dann sagt, wann der Thread beendet werden kann.

1.)Jetzt ist das Problem, dass ich nicht weiß wie ich das am besten umsetze, zudem bin ich mir nicht mal sicher, ob die Proxys geprüft werden.
2.) Kann ich da irgendwie eine Progressbar einbauen, welche mit jedem geprüften Proxy weiterläuft?




Wäre über eure Hilfe sehr dankbar!

Gruß

The_Dentist!
The_Dentist is offline  
Old 02/05/2015, 16:56   #2


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Quote:
Originally Posted by The_Dentist View Post
1.)Jetzt ist das Problem, dass ich nicht weiß wie ich das am besten umsetze, zudem bin ich mir nicht mal sicher, ob die Proxys geprüft werden.
Task?

Quote:
Originally Posted by The_Dentist View Post
2.) Kann ich da irgendwie eine Progressbar einbauen, welche mit jedem geprüften Proxy weiterläuft?
Geprüfte Proxys / Proxy-Anzahl * 100 = Prozentzahl.
Else is offline  
Thanks
1 User
Old 02/05/2015, 17:32   #3
 
The_Dentist's Avatar
 
elite*gold: 13
Join Date: Nov 2014
Posts: 71
Received Thanks: 4
Mal was anderes, mit einem Thread dauert das logischerweise sehr lange. Kann ich die Liste auch mit mehreren Threads durchgehen ohne, dass sich die einzelnen Threads überlappen und die gleichen Proxys überprüfen? Habe mit Tasks noch nicht gearbeitet, deswegen habe ich das mit einem Thread gemacht..

Gruß
The_Dentist is offline  
Old 02/05/2015, 18:05   #4


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Dein try-catch Block ist sehr fragwürdig, weißt du denn überhaupt was eine Exception ist und worin der Sinn davon liegt?

UseDefaultCredentials kann raus sofern der genutzte Proxy keine Authentifizierung erfordert

Übrigens liegst du richtig, dein Code prüft nicht wirklich zuverlässig, ob ein Proxy funktioniert oder nicht. Es kann klappen, kommt aber in der Regel auf die Implementierung der HttpWebRequest Klasse an. Ich würde auf jeden Fall noch den Statuscode der Anfrage überprüfen. Alles andere wie HTTP OK (200) ist eigentlich ungültig.

Du solltest dir übrigens auch ne Funktion schreiben die eine Aktion automatisch im Thread der GUI ausführt um nicht jedes mal eine Variable anlegen zu müssen wie du es hier tust:

Code:
MethodInvoker action = delegate { textBox3.Text += "Proxies werden überprüft!"; };
Ich nutze beispielsweise eher so etwas:

Code:
Execute(() => textBox3.Text += "Proxies werden überprüft!");

Quote:
Originally Posted by The_Dentist View Post
mit einem Thread dauert das logischerweise sehr lange.
Mehrere Threads sind nicht unbedingt schneller wie ein einzelner Thread. In der Regel sollte man aber Aufgaben die länger dauern in einem anderen Thread ausführen, wenn man andere Routinen im Hauptthread hat, die konsistent laufen müssen. Eine GUI friert beispielsweise ein, wenn du im selben Thread eine solche Aufgabe startest weil die Windows Nachrichten Schleife durch die laufende Aufgabe nicht mehr bearbeitet wird.

Quote:
Originally Posted by The_Dentist View Post
Kann ich die Liste auch mit mehreren Threads durchgehen ohne, dass sich die einzelnen Threads überlappen und die gleichen Proxys überprüfen? Habe mit Tasks noch nicht gearbeitet, deswegen habe ich das mit einem Thread gemacht..
Zwischen Tasks und Threads besteht nicht viel Unterschied, Tasks nehmen sich einen Thread aus dem ThreadPool von der .NET Runtime und führen die übergebene Funktion in diesem Thread aus.
Mostey is offline  
Thanks
1 User
Old 02/05/2015, 18:27   #5
 
The_Dentist's Avatar
 
elite*gold: 13
Join Date: Nov 2014
Posts: 71
Received Thanks: 4
Ja, normalerweise benutzt man Try Catch um Exceptions (Fehler) abzufangen und selbst zu entscheiden, was passiert. Beispiel wenn man Wissen will, ob etwas einen Null Exception wirft etc.
Die Try - Catch Anweisung habe ich so im Internet gefunden gehabt, ich werde diese eben ergänzen.

Danke!
The_Dentist is offline  
Old 02/05/2015, 22:53   #6

 
Terreox's Avatar
 
elite*gold: 155
Join Date: Aug 2009
Posts: 628
Received Thanks: 153
Um mehrere Threads mit deinen Daten zu füttern, könntest du dir z.B. eine Methode schreiben, die bei Aufruf die nächste Proxyadresse zurückgibt.
Diese Methode sollte natürlich thread-safe sein, um unerwünschte Nebeneffekte beim Multithreading (z.B. das mehrere Threads die gleiche Adresse bekommen) zu vermeiden.

Die ganzen Adressen kannst du dann z.B. bei Start des Programmes in eine Variable laden (z.B. eine Queue), aber hier musst du selber schauen, was am besten geeignet ist. Wenn du zu viele Adressen im Speicher hälst, dann frisst die Anwendung u.U. zu viel Arbeitsspeicher und du musst dir ein dynamischeres Verfahren einfallen lassen (z.B. einen Teil laden, den Rest stück für stück bei bedarf nachladen oder so)
Terreox is offline  
Old 02/06/2015, 17:12   #7


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Ihr macht aber auch aus einer Mücke einen Elefanten.

Quote:
Erstelle für jeden Proxy, der Aufgerufen wird, einen eigenen Task. Das Ergebnis kannst du in einer Liste zwischenspeichern. Es würde sich günstiger weise anbieten, mit Await und Async zu arbeiten.

Die Proxys, die mit einem eigenen Task gestartet wurden, werden aus der Liste entfernt. So kann diese Adresse NICHT erneut aufgerufen werden bzw. sollte mit einem richtigen Ablauf auch gar nicht erst.
Eine Proxy-Liste, Stück für Stück zu laden dürfte eher sinnlos als sinnvoll sein, unterm strich. Denn die Daten musst Du sowieso nun einmal abrufen... ob ich jetzt lieber einmal darauf zugreife, oder gleich mehrere male, ist dann wohl doch ein entscheidender unterschied.
Else is offline  
Old 02/06/2015, 18:41   #8
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Du kannst ja von jedem thread auf die Liste zugreifen. Deklarierst du die Liste also im richtigen gültigkeitsbereich kannst du die Liste auf 4 teile aufteilen.
Tasks sind besser weil sie gleichmäßig auf die cpu kerne aufgeteilt werden
YatoDev is offline  
Old 02/06/2015, 21:30   #9


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Quote:
Originally Posted by »FlutterShy™ View Post
Du kannst ja von jedem thread auf die Liste zugreifen. Deklarierst du die Liste also im richtigen gültigkeitsbereich kannst du die Liste auf 4 teile aufteilen.
Warum denn die Liste aufteilen und immer wieder darauf zugreifen? Es frisst doch kein Brot, für jeden Proxy, einen eigenen Task laufen zu lassen. So hast du Verlässlichkeit, wenn EIN PROXY mal abschmieren sollte / oder was auch immer / etc.

Im Fall das du die Liste aufteilst, ist die Gefährdung der anderen Proxys garantiert. Deshalb die Frage: Wieso andere mit den Kopf in die schlinge stecken lassen, wenn es für einen völlig ausreichend ist!?


Etwas, was völlig Oversized ist, für einen Proxy-Prüfer, starte doch gleich für jeden Proxy einen eigenen Prozess, mittels IPC. Damit kannst du die Anwendung, als Hauptinstanz (Server) verwenden und jede weitere Instanz (Proxy Prüfung) als Client und beendest zum Schluss das ganze.
So kann jeder Proxy ruhig einmal abschmieren, länger brauchen, usw. und deine Hauptinstanz ist NICHT davon gefährdet, wenn eine Instanz (Proxy Prüfung) abstürzt.
Else is offline  
Old 02/06/2015, 22:44   #10
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by Else View Post
Warum denn die Liste aufteilen und immer wieder darauf zugreifen? Es frisst doch kein Brot, für jeden Proxy, einen eigenen Task laufen zu lassen. So hast du Verlässlichkeit, wenn EIN PROXY mal abschmieren sollte / oder was auch immer / etc.

Im Fall das du die Liste aufteilst, ist die Gefährdung der anderen Proxys garantiert. Deshalb die Frage: Wieso andere mit den Kopf in die schlinge stecken lassen, wenn es für einen völlig ausreichend ist!?
es frisst doch kein brot immer wieder auf eine addresse zuzugreifen.
jo für jeden proxy einen task und dann erstmal ne 100k liste einlesen....
YatoDev is offline  
Old 02/06/2015, 23:07   #11
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
Ich rate hier in diesem Kontext einfach mal zur vorsicht mit Tasks, denn diese laufen im internen ThreadPool und somit hat man keine Möglichkeit den gewünschten Grad der Parallelisierung durchzusetzen. So kann es passieren das man sich selber die Geschwindigkeit raubt. Testen kann man es sicher mit Tasks, wenn es aber nicht funktioniert sollte man das Konzept auf echte Threads umstellen. Die Kosten um Threads zu erstellen sind gegenüber den I/O Wartezeiten absolut zu vernachlässigen.

Desweiteren darf man nicht außer acht lassen.
tolio is offline  
Old 02/06/2015, 23:09   #12


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Quote:
Originally Posted by »FlutterShy™ View Post
jo für jeden proxy einen task und dann erstmal ne 100k liste einlesen....
Wo ist das Problem? Bereits ausprobiert? Programmiere sauber, dann wirst doch auch keinerlei Probleme kriegen. es gibt viele Wege zur Lösung. Jedoch reden wir hier von einem "Proxy-Prüfer-auf-Existenz-und-oder-Verfügbarkeit". D.h. dürfte jederlei Lösung fast völlig oversized sein.

Quote:
Originally Posted by tolio View Post
Desweiteren darf man nicht außer acht lassen.
Das lässt sich leicht umgehend.
Else is offline  
Old 02/07/2015, 00:15   #13
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
Ich bin mir nicht sicher was du bei dem DefaultConnectionLimit umgehen willst, das ist einfach nen Property welches man bei Bedarf anpassen sollte, deswegen hab ich darauf verwiesen.
tolio is offline  
Old 02/07/2015, 14:14   #14
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by Else View Post
Wo ist das Problem? Bereits ausprobiert? Programmiere sauber, dann wirst doch auch keinerlei Probleme kriegen. es gibt viele Wege zur Lösung. Jedoch reden wir hier von einem "Proxy-Prüfer-auf-Existenz-und-oder-Verfügbarkeit". D.h. dürfte jederlei Lösung fast völlig oversized sein.
so ein proxy kann schonmal brauchen bis er eine antwort zurückgibt. testet man nur den ping kann das schonmal bis zum timeout gehen(den man natürlich selber bestimmen sollte). das dauert nicht zulang aber ich kenne das nur von meinem pc das er in dieser zeit so massig viele threads erstellt hat und man sollte ja nicht den ganzen cpu auslasten.

Wenn man auch testen will ob der proxy richtig arbeitet dann muss man wohl oder übel einen http request über diesen senden und das dauert....
YatoDev is offline  
Old 02/07/2015, 22:17   #15
 
D3luxe.'s Avatar
 
elite*gold: 317
The Black Market: 142/0/0
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
Quote:
Originally Posted by The_Dentist View Post
Hallo,

Ich habe mal eine Frage und zwar schreibe ich gerade ein Methode die eine Liste mit Proxys durchgeht. Die Methode soll diejenigen Proxys einer Liste hinzufügen, welche erfolgreich getestet wurden.

Die Methode wird in einem Thread aufgerufen, nun muss ich ein Feedback von der Methode bekommen, welches mir dann sagt, wann der Thread beendet werden kann.

1.)Jetzt ist das Problem, dass ich nicht weiß wie ich das am besten umsetze, zudem bin ich mir nicht mal sicher, ob die Proxys geprüft werden.
2.) Kann ich da irgendwie eine Progressbar einbauen, welche mit jedem geprüften Proxy weiterläuft?

Wäre über eure Hilfe sehr dankbar!

Gruß

The_Dentist!
Bin bis jetzt immer mit einer Proxy Klasse gut klar gekommen.
Eigenschaften: IP, Port, Checked, Working. Checked und Working natürlich false by default.

Dann eine List<Proxy> mit allen zu testenden Proxies, die natürlich public static sein sollte, wenn sie von mehreren Threads aus aufgerufen werden soll.

Dann in dem Stil durcharbeiten:

Außerdem gibt es mehrere Sachen, die du ändern solltest: Guck dir mal HttpClient an, der kann auch asynchron benutzt werden. Bietet sich für Multithreading an.

Außerdem würde ich die Proxies nicht auf google.com testen, weil sie immer auf die HTTPS-Seite weitergeleitet werden, und somit viele Proxies aussortiert werden, die SSL einfach nicht unterstützen, aber mit HTTP funktionieren würden.
Probiers mal selbst aus:
Als Alternative kannst du nehmen, das ist 'normales' HTTP.

Tasks habe ich nie gerne benutzt, auch, weil 20 Threads einfach schneller sind. Und selbst diese brauchen nicht übermäßig RAM, Prozessorleistung etc.

Um zu wissen, wann alle Threads fertig sind, einfach einen finished-Counter benutzen...

Edit: Für eine Progressbar mit Threads gibt's hier ne Anleitung:
E²: Evt. empfiehlt es sich, für die Threadsicherheit ein lock zu benutzen, macht aber praktisch keinen Unterschied.
D3luxe. is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
« Proxy Checker » « © BattleCreed 3 © »
05/02/2013 - elite*gold Trading - 9 Replies
elitepvpers, den 20.4.2013 Hallo Leute! Ich biete euch heute meinen sehr schnellen Proxy Checker an! http://i.epvpimg.com/G8rBg.png Informationen: Nachdem ihr die Treasure gekauft habt, ladet ihr das Progamm herunter (Link in der Treasure) und dann startet ihr das Progamm. Dort steht dann eure HWID, diese schickt ihr mir dann anschließend. Ich trage euch dann ein und ihr öffnet das Progamm neu. Nachdem du diese Schritte befolgt hast, kannst du anfangen deine ProxyListen checken zu...
~ Unredlicher Proxy Checker ~
04/19/2013 - elite*gold Trading - 27 Replies
http://i.epvpimg.com/8TeSc.jpg Bei dem Programm wird das NET Framework 4.0 oder höher benötigt! Nach dem Kauf muss mir noch die HWID geschickt werden, dann erstelle ich eine Lizens. Sobald die Lizens an euch geschickt ist verfällt das Rückerstattungsrecht, da die Lizens offline ist. Bei Problemen mit dem Checker, bitte zuerst an Cyperghost wenden, er hat ihn gecodet und kann euch sicherlich besser helfen als ich.
[B]Top Proxy Checker
02/09/2013 - elite*gold Trading - 13 Replies
Hi Leute, ich biete euch hier einen Top Proxy Checker, welcher von -superfarmer1995- programmiert wurde. Der Bot wurde in C# geschrieben. Informationen zum Bot: Der Bot sendet einen Ping an die IP Adresse des Proxys und überprüft dadurch ob dieser Online oder Offline ist. Dieses Verfahren geht deutlich schneller als HttpWebRequest und co. Außerdem sorgt er dafür das jeder Port nur einmal überprüft wird.
[B]Proxy Checker[S]e*Gold
11/26/2012 - elite*gold Trading - 23 Replies
Ich biete hier meine Proxy Checker an und die Source fals sie jemadn haben will. Er ist in C# geschrieben wurden. Bild http://www.fotos-hochladen.net/uploads/unbenanntw ri8xfc1lv.png Was kann er? Er läd Txt datein ein wo Proxy Server drinnen stehen in dem Format 622.935.797.42:9662



All times are GMT +1. The time now is 13:43.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.