Proxy Checker [ Modified ] [ vb.net ]

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