PDA

View Full Version : سوال: مشکل در ساخت پورت اسکتر



gigelaknak
سه شنبه 22 اسفند 1391, 19:47 عصر
سلام
من میخوام یه پورت اسکنر بنویسم واسه سرور های ریموت نه لوکال (مثلا google), به این صورت نوشت ولی کار نمیکنه :
textbox1 آدرس سایت
richtextbox1 پورت های برای اسکن
llistbox1 نشون دادن پورت های باز
با استفاده از bgworker

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Net;
using System.Web;
using System.Windows.Forms;
using System.Net.Sockets;


namespace Black_Hole_WebBrowser
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}




//function to check ports
bool ScanPort(IPAddress Address, int Port)
{
TcpClient Client = new TcpClient();
try
{

Client.Connect(Address, Port);
NetworkStream ClientStream = Client.GetStream();

ClientStream.Close();
Client.Close();
}
catch (SocketException)
{
return false;
}
return true;
}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();

}

private void Form4_Load(object sender, EventArgs e)
{
//default richtextbox values
richTextBox1.Text = "20\r\n21\r\n22\r\n25\r\n67\r\n43\r\n53\r\n79\r\n80 \r\n110\r\n8080\r\n465\r\n1433\r\n2082\r\n2083\r\n 3306";
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
TcpClient tcpClient = new TcpClient();

//get domain instead of http://www.target.com/
string req = textBox1.Text;
if (req.Substring(0, 4) == "http")
req = req.Substring(7);
if (req.Substring(req.Length - 1, 1) == "/")
req = req.Substring(0, req.Length - 1);

string[] ports = richTextBox1.Lines;
foreach (string port in ports )
{

label5.Text = port;
if (ScanPort(Dns.GetHostEntry(req).AddressList[0], System.Convert.ToInt32(port)))
listBox1.Items.Add(port + " is open");

}
MessageBox.Show("Done !");

}
}
}