Merhabalar hayırlı akşamlar diliyorum. Geçen gün yapmış olduğum programa bir adet proxy üretici eklemek istedim. Bu kod çoğu yerde var(şahsen source codester sitesinden aldım) ben sadece timeout kısmının ayarı ile oynayarak karşınıza daha hızlı bir dönüş sağlayan proxy'ler getirecek bir yazılım sunmak istedim.
TimeOut Nedir?
Türkçe karşılığı zaman aşımı anlamına gelmektedir. Yani web sitelerinin sayfalarının yüklenmesi durumu bilgisayarınızda kaç saniyede veya dakika da açıldığı konusu ile alakalı. Pek çok zaman aşımı hatası da bulunmaktadır. En bilinenleri; 408,404,401...
Gerekenler;
2 adet buton birisi kontrolü yapılacak olan proxy dolu metin listemizi liste kutumuza yansıtacak. Diğeri ise kullanılabilir olanları çalışmayanlardan ayıracak.
1 adet listbox bu da yukarıda yapmış olduğum çalışan proxy'leri liste kutumuza yansıtacak.
Konuya başlamadan en başa eklememiz gerekenler;
Imports System.IO
Imports
System.Net
Not: Kodlar açıklaması içerisinde verilmiştir.
Proxy dolu metin belgemizi seçecek olan ve kontrol edecek olan kodumuz; + Burada şuna değinmek istiyorum. r.Timeout = 500 kodumuza baktığımızda zaman aşımının 500 olduğunu görüyoruz. Bu yarım saniye anlamına geliyor bunu 1000 yaparsanız 1 saniye olur. 8000 yapan kodlarda var yani sayfanın yüklenmesi 8 saniye sürüyor. Ben hızı tercih ettiğim için sizinle paylaşmış olduğum kodda 500 yaptım siz bir değişkene bağlayabilirsiniz. Örneğin bir ComboBox eklersiniz ögeleri içerisine 250, 500, 1000 yazarsınız kodu r.Timeout = ComboBox1.SelectedItem olarak değiştirip saniye ve hızı kendinize veya kullanıcıya göre ayarlanabilir hale getirebilirsiniz.
Dim fo As New OpenFileDialog
fo.RestoreDirectory = True
fo.Multiselect = False
fo.Filter = "Metin Belgesi (*.txt)|*.txt" fo.FilterIndex = 1
fo.ShowDialog()
If (Not fo.FileName = Nothing) Then
Dim proxies As New List(Of String)
Using sr As New StreamReader(fo.FileName)
While sr.Peek <> -1
proxies.Add(sr.ReadLine())
End While
End Using
Dim myProxy As WebProxy
For Each proxy As String In proxies
Try
myProxy = New WebProxy(proxy)
Dim r As HttpWebRequest = HttpWebRequest.Create("http://www.google.com")
r.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36"
r.Timeout = 500 'Orjinal kod ile farkı 3000 idi bunu 8000 yapan kod bile var arkadaşlar burada ben 500 yaptım. Yani yarım saniye...
r.Proxy = myProxy Dim re As HttpWebResponse = r.GetResponse()
ListBox1.Items.Add(proxy) 'orjinal kodda çalışan proxy yazıyordu bana yazı lazım değil zaten üst kodda çalışmayanı ayırdım. Bir de yazı silmekle uğraşmayalım değil mi? :)
Catch ex As Exception
'ListBox1.Items.Add("Geçersiz Proxy: " & proxy) bu kodu isterseniz aktif edebilirsiniz ancak ben çalışabilirlik açısından eklemedim. Siz isterseniz ekleyebilirsiniz. End Try
Next
End If
Çalışan hızlı proxy'lerimi kaydetme kodum;
If (ListBox1.Items.Count > 0) Then
Dim fs As New SaveFileDialog
fs.RestoreDirectory = True
fs.Filter = "Metin Belgesi (*.txt)|*.txt"
fs.FilterIndex = 1 fs.ShowDialog()
If Not (fs.FileName = Nothing) Then
Using sw As New StreamWriter(fs.FileName)
For Each line As String In ListBox1.Items
sw.WriteLine(line)
Next
End Using
End If
End If