Yusuf Şahin
Blog myBlog= new Blog("Daima Öğrenci");


Basit bir portscan programı

Haziran 7, 2008 10:12 by Yusuf Sahin

portscan.zip (59,23 kb)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;

namespace BaseLib
{
     public class PortScan{

        public static bool Connect(string IPAddress, int Port , int WaitSeconds){

          TcpClient TcpScan = new TcpClient();
           
try{
               
bool ConnectSuccess = false;
                TcpScan.BeginConnect(IPAddress, Port,
null, null);
               
for (int i = 0; i <= WaitSeconds; i++) {
                     System.Threading.
Thread.Sleep(10);
                    
if (TcpScan.Connected){
                         ConnectSuccess =
true;
                    
break;
                     }
                }

                return ConnectSuccess;
               }
             
catch{
             
              
return false;
              }
             finally{
              TcpScan.Close();
              }
           }
       }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BaseLib;
using System.IO;

namespace WinPortScan{

     public partial class FrmMain : Form{
          public FrmMain(){

           InitializeComponent();
          }

     private void btnScanPort_Click(object sender, EventArgs e){

     btnSave.Enabled = false;
    
int startPort = Convert.ToInt32(nudMin.Value);
    
int endPort = Convert.ToInt32(nudMax.Value);
    
if (startPort > endPort)
      {
       
MessageBox.Show("End port must greater then the start port", "Error - PortScan");
       
return;
      }
    
Cursor.Current = Cursors.WaitCursor;
      
for (int CurrPort = startPort; CurrPort <= endPort; CurrPort++)
       {
       
DateTime stopTime;
       
TimeSpan ts;
       
DateTime startTime = DateTime.Now;
       
bool result=PortScan.Connect(this.txtIPNum.Text, CurrPort,int.Parse(nudSeconds.Value.ToString()) );
         
if (result == true)
          {
            stopTime =
DateTime.Now;
            ts= stopTime - startTime;
              txtLog.AppendText(txtIPNum.Text+
":" + CurrPort + " open "+DateTime.Now.ToString("HH:mm:ss:ff")+"-"+ts.ToString()+"\r\n"); }
           
else
        
{
           stopTime =
DateTime.Now;
           ts = stopTime - startTime;
           txtLog.AppendText(txtIPNum.Text +
":" + CurrPort + " closed " + DateTime.Now.ToString("HH:mm:ss:ff") + "-" + ts.ToString() + "\r\n");
         }
       }
       
Cursor.Current = Cursors.Arrow;
         btnSave.Enabled =
true;
     }
     private void btnSave_Click(object sender, EventArgs e){      
      sfdIpPortScanResults.Filter =
"txt files (*.txt)|*.txt|All files (*.*)|*.*";
       sfdIpPortScanResults.FilterIndex = 1;
       sfdIpPortScanResults.RestoreDirectory =
true;
      
if (sfdIpPortScanResults.ShowDialog()==DialogResult.OK)
        {
        
string fileName = sfdIpPortScanResults.FileName;
         SaveFile(fileName);
        }
    }

     protected void SaveFile(string fileName)
     {
       
try {
       
Stream stream = File.OpenWrite(fileName);
       
using(StreamWriter writer=new StreamWriter(stream))
        {
          writer.Write(txtLog.Text);
        }
       }

     catch (IOException ex){
       
MessageBox.Show(ex.Message, "PortScanner", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
   }

   private void btnClear_Click(object sender, EventArgs e){
       txtLog.Text =
"";
       btnSave.Enabled =
false;
    }
   }
}

Generik sınıflar

Ağustos 20, 2007 11:59 by Yusuf Sahin

Generik sınıf,içerisinde her türlü değişken tipi (int,string...) tutabilen,hangi nesne tutabileceğine sınıftan bir nesne yaratırken karar verebileceğiniz ve belirlene tip için aynı işleri yapabilmenizi sağlayan sınıftır.

List<Tipi> mylist = new List<Tipi>();

şeklinde tanımlanır.Bir kaç örnek vermek gerekirse;

List<string> mylist = new List<string>();
List<int> mylist = new List<int>();