Visual Basic – Local port scanner

merhaba programlama takipcileri size Oldukca basit ama oldukça kolay program hazırlayacaz

Ne Yapılabilir?

– Açık portlarınızı tarayabilir Kapatabilirsiniz.

-Ayrıca açtıgınız Portun açık olup olmadıgını denetleyebilirsiniz.

winsock la bişeyler yapmak isteyenler için
bu arada winsock kodda ws diye geçiyor 😉

Dim start As Boolean
Private Sub cmdBasla_Click()
mnuDosya.Enabled = False ' popup menüyü disable ettim
mnuYardim.Enabled = False ' buda diğer popup menu
cmdBasla.Enabled = False ' basla butonunu disable ediyorum
cmdDur.Enabled = True ' dur butonu enable ediyorum..
txtBaslangic.Enabled = False ' text boxları disable ediyorum
txtBitis.Enabled = False ' bunuda tabi ;)
hafizatemizle ' değişkenleri hafızadan siliyorum yoksa kaldığı yerden
' devam eder ;)
WS.Close ' winsock 'u kapatıyorum ..

bport = txtBaslangic.Text ' bport değişkenine txtbaslangıç' ın değerini atıyorum ...(bport başlangıç portu)
sport = txtBitis.Text ' sportada txtbitis'in değerini atıyorum.(sport son port bitiş yani ;) )

start = True ' start= true yapıyorum..bunu programı durdururken kullanacağım
On Error GoTo hata ' hata olursa hata label'ına göderiyorum ....
' burada olacak hata portları tararken
' portun kullanımda olduğu hatası... zaten yakalamak
' istediğimiz olay budur..

For i = bport To sport ' baslangiç portu bitis portu olana kadar
' dönecek döngü kuruyoruz

bport = bport + 1 ' her seferinde portu bir artırıoruz . . .
Bar.Panels(1).Text = bport & ". port taranıyor..." ' status barda hangi portta olduğumuzu görebilmek için

DoEvents ' işin en önemli yeri yavaşlatıyor ama programın kilitlenmeden çalışmasını sağlıyor..
' statusbarda sırasıyla portlar bu sayede görülebiliyor...
' bir kısım işlemleri windows a yaptırıyor...

WS.LocalPort = bport ' winsock local porta bport atanıyor ..sırasıyla dönecek ...
WS.Listen ' bu port dinleniyor

DoEvents ' olmassa olmaz ;) yavaş ama olsun
If start = False Then Exit Sub ' yukarıda çıkış için kullanacağımız start bu..false ise çık yani :)
If bport >= sport Then GoTo bitti 'basladığımız port bitecek porta gelince bitti labeline git
WS.Close ' winsock close ...her seferinde başka bir porta bakacağımız için
' her dinlemeden sonra close etmeliyiz

Next i ' dönelim ;))

hata: 'hata olursa buraya geliyor
If Err.Number = 10048 Then 'hata eğer 10048 ise
lstSonuc.AddItem "-" & bport & " numarılı port kullanılıyor . . ;)" ' listeye port numarasını yaz
Beep ' bip le
Resume Next ' sonrada devam etki başka hangi port war görelim
End If 'end if

bitti: 'biitiyse
MsgBox "Portlarınızın tarama işlemi sonuçlandı ..." ' msg box çıkarıyor ....
mnuDosya.Enabled = True 'dur a basınca baslata basınca
mnuYardim.Enabled = True 'enable ve disable olan şeyler
cmdBasla.Enabled = True ' tam tersi oluyor
cmdDur.Enabled = False
cmdTemizle.Enabled = True
txtBaslangic.Enabled = True
txtBitis.Enabled = True
start = False 'burası durdurma değişkeni false yapıp döngüden çıkarıyoruz..
hafizatemizle
WS.Close
Bar.Panels(1).Text = "Programmed By Mafilard"

End Sub

Private Sub hafizatemizle()
On Error Resume Next
bport = "" 'bport ve sport değişkenlerini her seferinde boşaltıyorum
sport = "" 'böylece başlata ve dur a bastığımızda tekrar tazelenmiş oluyor
' belki gereksiz ama iki satır eksik kod yazacağım diye
'runtime da oluşan salak bir hatayla uzun uzun uğraştırıyo
'bu tür şeyler..o yüzden siz yazmassanız yazmayın ;)

End Sub

Private Sub cmdDur_Click()
cmdDur.Enabled = False
mnuDosya.Enabled = True 'dur a basınca baslata basınca
mnuYardim.Enabled = True 'enable ve disable olan şeyler
cmdBasla.Enabled = True ' tam tersi oluyor
cmdTemizle.Enabled = True
txtBaslangic.Enabled = True
txtBitis.Enabled = True
start = False 'burası durdurma değişkeni false yapıp döngüden çıkarıyoruz..
hafizatemizle
WS.Close
End Sub

Private Sub cmdTemizle_Click()
lstSonuc.Clear ' lisbox'ı temizliyoruz
cmdTemizle.Enabled = False
End Sub

Private Sub Form_Load()
cmdTemizle.Enabled = False

End Sub

Private Sub mnuitemCikis_Click()
start = False
WS.Close
hafizatemizle
End
End Sub

Bir Cevap Yazın