Basit bir portscan programı

7. Haziran 2008

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;
    }
   }
}

C#

Hello LinQ

28. Şubat 2008

İlk denemelerden örnekler. 

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

namespace HelloLinq
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] sayilar = { 1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008};

            var ikibinuctenbuyuk = from s in sayilar where s > 2003 select s;
            Console.WriteLine("2003'ten büyük");
            foreach (var a in ikibinuctenbuyuk)
                {
                    Console.WriteLine("-"+a);
                }
        }
    }
}
,

C#

Generik sınıflar

20. Ağustos 2007

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>();

C#