From 958500acd7709f9c709a2f8a1d9fd222e53326d8 Mon Sep 17 00:00:00 2001 From: fong Date: Tue, 30 Jan 2024 17:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E4=B8=8E=E5=88=86=E5=8F=91=20Signed-off-by:=20fong=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ip_sacaner/scan_run.cpp | 118 ++++++++++++++- ip_sacaner/scan_run.h | 15 +- ip_sacaner/widget.cpp | 163 +++++++++++++++++++- ip_sacaner/widget.h | 1 + ip_sacaner/widget.ui | 328 +++++++++++++++++++++++++++++++++++++++- 5 files changed, 593 insertions(+), 32 deletions(-) diff --git a/ip_sacaner/scan_run.cpp b/ip_sacaner/scan_run.cpp index acac439..9d04b70 100644 --- a/ip_sacaner/scan_run.cpp +++ b/ip_sacaner/scan_run.cpp @@ -26,11 +26,25 @@ quint32 ipv4str_to_int(const QString& ipstr) } } + + +trytry::trytry() +{ + + +} + void trytry::run() { + + qDebug()<ipstr<<":"<ipint; + sleep(1); + + } + dispatch::dispatch() { @@ -45,8 +59,11 @@ void dispatch::run() QStringList str_list_more; quint32 ipa,ipb; QStringList str_port_list = port_list.split("\n"); - QStringList str_ports_list; - + QStringList str_ports_temp; + QStringList str_porttoport_temp; + quint32 porta,portb; + QList ports_list; + quint64 ports_num=0; quint64 ips_num=0; QRegExp ex_ipv4 ("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$"); QRegExp ex_ipv4_more("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)-((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$"); @@ -121,16 +138,101 @@ void dispatch::run() } - qDebug() << str_ips_list.size(); - for(int ii=0;iiportb) + { + for(;portb<=porta;portb++) + { + ports_list.append(portb); + ports_num+=1; + + } + }else if(portb>porta) + { + for(;porta<=portb;porta++) + { + ports_list.append(porta); + ports_num+=1; + + } + }else//= + { + ports_list.append(porta); + ports_num+=1; + + } + } + + } + } + quint64 scantimes=ips_num*ports_num,now_scan=0; + + qDebug() << "IP: "<now_thread_num<<" - set:"<set_thread_num; + + while(this->now_thread_num>this->set_thread_num); + connecttry=new trytry; + connecttry->timeout=this->timeout; + connecttry->ipstr=str_ips_list.at(ii); + connecttry->ipint=ports_list.at(iii); + this->now_thread_num+=1; + //connect(connecttry,&trytry::started,[=]{this->now_thread_num+=1;}); + connect(connecttry,&trytry::finished,[=]{this->now_thread_num-=1;}); + + connecttry->start(); + + jindu=(quint16)(((qfloat16)(now_scan)/(qfloat16)(scantimes))*100); + if(jindu!=jindu_old) + { + jindu_old=jindu; + //qDebug() < #include #include - +#include class trytry : public QThread { + Q_OBJECT public: + trytry(); - quint16 *outputbusy; - quint16 *barbusy; quint16 timeout; QString ipstr; quint32 ipint; - int *now_thread_num; - QTextEdit* output_list; - - quint64 *t_bar; - quint64 *nt_bar; - void run(); @@ -47,7 +41,7 @@ public: QString ip_list; QString port_list; - + trytry *connecttry; void run(); @@ -55,6 +49,7 @@ public: signals: void dispatch_finish(); void dispatch_one(); + void return_jindu(quint16); }; diff --git a/ip_sacaner/widget.cpp b/ip_sacaner/widget.cpp index 8eed728..99d084d 100644 --- a/ip_sacaner/widget.cpp +++ b/ip_sacaner/widget.cpp @@ -8,9 +8,10 @@ -void Widget::auto_edit() +void Widget::jindu_chuli(quint16 temp) { - //qDebug("%d",rand()); + //qDebug()<progressBar->setValue(temp); } @@ -39,8 +40,11 @@ Widget::Widget(QWidget *parent) connect(dispatch_thread,&dispatch::dispatch_finish,[=]{ emit stop_scan(); }); - dispatch_thread->start(); + connect(dispatch_thread,&dispatch::return_jindu,this,&Widget::jindu_chuli); + ui->progressBar->setValue(0); + dispatch_thread->start(); + ui->stard_scan->setDisabled(false); }); connect(this,&Widget::stop_scan,[=]{ @@ -50,20 +54,25 @@ Widget::Widget(QWidget *parent) ui->timeout->setReadOnly(false); ui->threads->setReadOnly(false); ui->stard_scan->setText("start scan"); - qDebug() << "tray_exit"; + dispatch_thread->disconnect(); - dispatch_thread->terminate(); - delete dispatch_thread; + dispatch_thread->quit(); + dispatch_thread->wait(); + //delete dispatch_thread; + ui->stard_scan->setDisabled(false); + qDebug() << "tray_exit"; }); connect(ui->stard_scan, &QPushButton::pressed, [=]() { + ui->stard_scan->setDisabled(true); if(scan_flag==0) { emit start_scan(); }else { + dispatch_thread->terminate(); emit stop_scan(); } @@ -166,6 +175,148 @@ Widget::Widget(QWidget *parent) ui->IP_list->clear(); }); + + + connect(ui->pushButton_22, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_22->text()); + + }); + connect(ui->pushButton_23, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_23->text()); + + }); + connect(ui->pushButton_24, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_24->text()); + + }); + connect(ui->pushButton_25, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_25->text()); + + }); + connect(ui->pushButton_26, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_26->text()); + + }); + connect(ui->pushButton_27, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_27->text()); + + }); + connect(ui->pushButton_28, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_28->text()); + + }); + connect(ui->pushButton_29, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_29->text()); + + }); + connect(ui->pushButton_30, &QPushButton::pressed, [=]() + { + + ui->port_list->appendPlainText(ui->pushButton_30->text()); + + }); + + connect(ui->pushButton_31, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_31->text()); + + }); + connect(ui->pushButton_32, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_32->text()); + + }); + connect(ui->pushButton_33, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_33->text()); + + }); + connect(ui->pushButton_34, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_34->text()); + + }); + connect(ui->pushButton_35, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_35->text()); + + }); + connect(ui->pushButton_36, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_36->text()); + + }); + connect(ui->pushButton_37, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_37->text()); + + }); + connect(ui->pushButton_38, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_38->text()); + + }); + connect(ui->pushButton_39, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_39->text()); + + }); + connect(ui->pushButton_40, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText("\n"); + + }); + connect(ui->pushButton_41, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_41->text()); + + }); + connect(ui->pushButton_42, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_42->text()); + + }); + connect(ui->pushButton_43, &QPushButton::pressed, [=]() + { + + ui->port_list->clear(); + + }); + connect(ui->pushButton_44, &QPushButton::pressed, [=]() + { + + ui->port_list->insertPlainText(ui->pushButton_44->text()); + + }); + } Widget::~Widget() diff --git a/ip_sacaner/widget.h b/ip_sacaner/widget.h index 69bd838..54ad9fb 100644 --- a/ip_sacaner/widget.h +++ b/ip_sacaner/widget.h @@ -33,6 +33,7 @@ public: quint64 t_bar=0; quint64 nt_bar=0; + void jindu_chuli(quint16 temp); signals: void stop_scan(); void start_scan(); diff --git a/ip_sacaner/widget.ui b/ip_sacaner/widget.ui index def0707..20c4865 100644 --- a/ip_sacaner/widget.ui +++ b/ip_sacaner/widget.ui @@ -6,19 +6,19 @@ 0 0 - 600 + 800 500 - 600 + 800 500 - 600 + 800 500 @@ -44,9 +44,9 @@ - 480 + 690 220 - 111 + 91 41 @@ -81,7 +81,7 @@ 999 - 10 + 100 @@ -144,7 +144,7 @@ domain.com 10 270 - 581 + 771 221 @@ -456,7 +456,7 @@ domain.com 320 220 - 51 + 61 41 @@ -464,6 +464,318 @@ domain.com clear + + + + 600 + 100 + 61 + 23 + + + + 1-65535 + + + + + + 600 + 130 + 41 + 23 + + + + 80;443 + + + + + + 620 + 160 + 21 + 23 + + + + 22 + + + + + + 640 + 160 + 21 + 23 + + + + 23 + + + + + + 600 + 160 + 21 + 23 + + + + 21 + + + + + + 640 + 130 + 51 + 23 + + + + 3389 + + + + + + 660 + 160 + 31 + 23 + + + + 445 + + + + + + 600 + 190 + 41 + 23 + + + + 25565 + + + + + + 640 + 190 + 51 + 23 + + + + 25;587 + + + + + + 487 + 230 + 111 + 23 + + + + 0 + + + + + + 690 + 130 + 31 + 23 + + + + 4 + + + + + + 750 + 130 + 31 + 23 + + + + 6 + + + + + + 690 + 100 + 31 + 23 + + + + 1 + + + + + + 720 + 100 + 31 + 23 + + + + 2 + + + + + + 720 + 130 + 31 + 23 + + + + 5 + + + + + + 720 + 160 + 31 + 23 + + + + 8 + + + + + + 750 + 160 + 31 + 23 + + + + 9 + + + + + + 690 + 160 + 31 + 23 + + + + 7 + + + + + + 750 + 100 + 31 + 23 + + + + 3 + + + + + + 720 + 190 + 31 + 23 + + + + 0 + + + + + + 750 + 190 + 31 + 23 + + + + - + + + + + + 660 + 100 + 31 + 23 + + + + ENT + + + + + + 600 + 220 + 91 + 41 + + + + clear + + + + + + 690 + 190 + 31 + 23 + + + + ; + +