Merge branch 'test' into 'master'

已完成基本功能

See merge request kevin/tcp_ip_scan!1
This commit is contained in:
2024-01-30 11:42:08 +00:00
5 changed files with 1170 additions and 295 deletions
+191 -169
View File
@@ -26,223 +26,245 @@ quint32 ipv4str_to_int(const QString& ipstr)
}
}
trytry::trytry()
{
}
void trytry::run()
{
if (ipint != 0 && ipstr != "")
{
//qDebug()<<ipstr<<":"<<ipint;
QTcpSocket m_socket;
m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
if (m_socket.waitForConnected(timeout))
{
while(*outputbusy);
*outputbusy+=1;
emit try_one(1);
QString temp = QString("%1:%2").arg(ipstr).arg(ipint);
output_list->append(temp);
//qDebug() << ipstr<<":"<< ipint;
//msleep(1);
*outputbusy-=1;
QTcpSocket *m_socket=new QTcpSocket;
connect(m_socket,&QTcpSocket::disconnected,[=]{
qDebug()<<temp<<"Disconnected";
//m_socket->disconnect();
m_socket->close();
m_socket->flush();
m_socket->deleteLater();
delete m_socket;
});
connect(m_socket,&QTcpSocket::connected,[=]{
emit connect_ok(temp);
qDebug()<<temp;
});
m_socket->connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
m_socket->waitForConnected(timeout);
m_socket->disconnectFromHost();
emit try_one(-1);
}
m_socket.disconnectFromHost();
m_socket.disconnect();
//while(*barbusy);
//*barbusy+=1;
//str.asprintf("停止 %.3f",((0.0+*nt_bar)/(0.0+*t_bar))*100);
//bt->setText(QString("%1%").arg(((0.0+*nt_bar)/(0.0+*t_bar))*100));
//qDebug()<<*nt_bar<<"/"<<*t_bar;
//*barbusy-=1;
//*now_thread_num-=1;
}
}
dispatch::dispatch()
{
}
void dispatch::tray(const QString& ipstr, quint32 ipint)
{
//qDebug()<<"thread "<<now_thread_num<<":"<<set_thread_num;
while (now_thread_num> set_thread_num)
{
//qDebug()<<"while "<<now_thread_num<<":"<<set_thread_num;
}
try_telnet=new trytry;
try_telnet->ipstr = ipstr;
try_telnet->ipint = ipint;
try_telnet->timeout = timeout;
try_telnet->output_list = output_list;
try_telnet->now_thread_num = &now_thread_num;
try_telnet->t_bar=t_bar;
try_telnet->nt_bar=nt_bar;
try_telnet->outputbusy=&outputbusy;
try_telnet->barbusy=&barbusy;
//try_telnet->moveToThread(main_thread);
connect(try_telnet,&QThread::started,[=]()
{
now_thread_num+=1;
thread_start_lock=0;
});
connect(try_telnet,&QThread::finished,[=]()
{
now_thread_num-=1;
});
while(thread_start_lock);
try_telnet->start();
thread_start_lock=1;
*nt_bar+=1;
emit dispatch_one();
}
void dispatch::run()
{
//qDebug()<< ui->IP_list->toPlainText();
//the_bar->setValue(20);
//QTcpSocket* m_socket = new QTcpSocket;
QStringList str_ip_list = ip_list->toPlainText().split("\n");
QStringList str_ip_list = ip_list.split("\n");
QStringList str_ips_list;
QStringList str_port_list = port_list->toPlainText().split("\n");
QStringList str_ports_list;
QStringList str_list_more;
quint32 ipa,ipb;
QStringList str_port_list = port_list.split("\n");
QStringList str_ports_temp;
QStringList str_porttoport_temp;
quint32 porta,portb;
QList <quint32> 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?)$");
QRegExp ex_ipv4_more2("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)/(0?[0-9]|1[0-9]|2[0-9]|3[0-2])$");
QRegExp ex_ipv6 ("^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");
QRegExp ex_domain ("^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$");
quint32 ips_num=0;
quint32 ports_num=0;
for (int i = 0; i < str_ip_list.size(); ++i)
{
//qDebug() << str_ip_list.at(i);
str_ips_list = str_ip_list.at(i).split("-");
if (str_ips_list.size() > 1)
if(ex_ipv4.exactMatch(str_ip_list.at(i)))
{
qDebug() << str_ip_list.at(i)<<" is ipv4";
str_ips_list.append(str_ip_list.at(i));
ips_num+=1;
}else if(ex_ipv4_more.exactMatch(str_ip_list.at(i)))
{
qDebug() << str_ip_list.at(i)<<" is ipv4_more";
str_list_more=str_ip_list.at(i).split("-");
ipa=ipv4str_to_int(str_list_more.at(0));
ipb=ipv4str_to_int(str_list_more.at(1));
if(ipa>ipb)
{
for(;ipb<=ipa;ipb++)
{
str_ips_list.append(ipv4int_to_str(ipb));
ips_num+=1;
}
}else if(ipb>ipa)
{
for(;ipa<=ipb;ipa++)
{
str_ips_list.append(ipv4int_to_str(ipa));
ips_num+=1;
}
}else//=
{
str_ips_list.append(ipv4int_to_str(ipa));
ips_num+=1;
}
}else if(ex_ipv4_more2.exactMatch(str_ip_list.at(i)))
{
ips_num=ipv4str_to_int(str_ips_list.at(str_ips_list.size() - 1))-ipv4str_to_int(str_ips_list.at(0))+1;
qDebug() << str_ip_list.at(i)<<" is ipv4_more2";
str_list_more=str_ip_list.at(i).split("/");
ipa=ipv4str_to_int(str_list_more.at(0));
ipb=qPow(2,(32-str_list_more.at(1).toInt()));
for(quint32 ii=0;ii<ipb;ii++)
{
str_ips_list.append(ipv4int_to_str(ipa+ii));
ips_num+=1;
}
}else if(ex_ipv6.exactMatch(str_ip_list.at(i)))
{
qDebug() << str_ip_list.at(i)<<" is ipv6";
str_ips_list.append(str_ip_list.at(i));
ips_num+=1;
}else if(ex_domain.exactMatch(str_ip_list.at(i)))
{
qDebug() << str_ip_list.at(i)<<" is domain";
str_ips_list.append(str_ip_list.at(i));
ips_num+=1;
}else
{
ips_num+=1;
}
qDebug() << str_ip_list.at(i)<<" don't know what is thit";
}
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
{
str_ports_list = str_port_list.at(ii).split("-");
if (str_ports_list.size() > 1)
{
ports_num=str_ports_list.at(str_ports_list.size() - 1).toInt() -str_ports_list.at(0).toInt()+1;
}
else
{
QRegExp ex_port ("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$");
QRegExp ex_porttoport("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])-(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$");
//QRegExp ex_portmore ("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]);$");
for (int i = 0; i < str_port_list.size(); ++i)
{
str_ports_temp=str_port_list.at(i).split(";");
for (int ii = 0; ii < str_ports_temp.size(); ++ii)
{
if(ex_port.exactMatch(str_ports_temp.at(ii)))
{
qDebug()<<str_ports_temp.at(ii)<<" norlmore port";
ports_list.append(str_ports_temp.at(ii).toInt());
ports_num+=1;
}
}
*t_bar=ips_num*ports_num;
*nt_bar=0;
outputbusy=0;
\
//qDebug()<<*t_bar;
//*****************************
for (int i = 0; i < str_ip_list.size(); ++i)
}else if(ex_porttoport.exactMatch(str_ports_temp.at(ii)))
{
//qDebug() << str_ip_list.at(i);
str_ips_list = str_ip_list.at(i).split("-");
if (str_ips_list.size() > 1)
qDebug()<<str_ports_temp.at(ii)<<" port to port";
str_porttoport_temp=str_ports_temp.at(ii).split("-");
porta=str_porttoport_temp.at(0).toInt();
portb=str_porttoport_temp.at(1).toInt();
if(porta>portb)
{
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: "<<ips_num;
qDebug() << "port :"<<ports_num;
qDebug() << "scan times :"<<scantimes;
quint16 jindu=0,jindu_old=0;
for(quint64 ii=0;ii<ips_num;ii++)
{
for(quint64 iii=0;iii<ports_num;iii++)
{
for (quint32 ips = ipv4str_to_int(str_ips_list.at(0)); ips < ipv4str_to_int(str_ips_list.at(str_ips_list.size() - 1)) + 1; ips++)
{
//qDebug() << ipv4int_to_str(ips);
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
{
str_ports_list = str_port_list.at(ii).split("-");
if (str_ports_list.size() > 1)
//qDebug() <<str_ips_list.at(ii)<<":"<< ports_list.at(iii);
//qDebug()<<"now:"<<this->now_thread_num<<" - set:"<<this->set_thread_num;
connecttry=new trytry;
connecttry->timeout=this->timeout;
connecttry->ipstr=str_ips_list.at(ii);
connecttry->ipint=ports_list.at(iii);
connect(connecttry,&trytry::try_one,this,&dispatch::f_one);
connect(connecttry,&trytry::connect_ok,[=](QString temp){emit connect_ok(temp);});
/*
connect(connecttry,&trytry::finished,[=]{
connecttry->disconnect();
connecttry->quit();
connecttry->wait();
});
*/
connecttry->start();
jindu=(quint16)(((qfloat16)(now_scan)/(qfloat16)(scantimes))*100);
if(jindu!=jindu_old)
{
jindu_old=jindu;
//qDebug() <<jindu;
for (quint32 prots = str_ports_list.at(0).toInt(); prots < str_ports_list.at(str_ports_list.size() - 1).toInt() + 1; prots++)
{
dispatch::tray(ipv4int_to_str(ips), prots);
emit return_jindu(jindu);
}
}
else
{
dispatch::tray(ipv4int_to_str(ips), str_ports_list.at(0).toInt());
}
}
}
}
else
{
now_scan+=1;
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
{
str_ports_list = str_port_list.at(ii).split("-");
if (str_ports_list.size() > 1)
{
for (quint32 prots = str_ports_list.at(0).toInt(); prots < str_ports_list.at(str_ports_list.size() - 1).toInt() + 1; prots++)
{
dispatch::tray(str_ips_list.at(0), prots);
}
}
else
{
dispatch::tray(str_ips_list.at(0), str_ports_list.at(0).toInt());
while(this->now_thread_num>this->set_thread_num);
}
}
}
//for (unsigned long a = str_ips_list.at(0).toInt();a< str_ip_list.size()>1? str_ips_list.at(1).toInt()+1: str_ips_list.at(0).toInt()+1;a++)
//{
// qDebug() << a;
//}
}
//sleep(1);
while(now_thread_num);
emit dispatch_finish();
}
void dispatch::f_one(qint16 temp)
{
this->now_thread_num+=temp;
}
+18 -25
View File
@@ -9,26 +9,22 @@
#include <QTcpSocket> //socket
#include <QLabel>
#include <QPlainTextEdit>
#include <qmath.h>
#include <QFloat16>
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();
signals:
void try_one(qint16);
void connect_ok(QString);
};
@@ -39,27 +35,24 @@ public:
dispatch();
int set_thread_num;
int now_thread_num;
int thread_start_lock=0;
qint16 set_thread_num;
qint16 now_thread_num;
quint16 thread_start_lock=0;
quint16 timeout;
quint64 *t_bar;
quint64 *nt_bar;
quint16 outputbusy=0;
quint16 barbusy=0;
//QThread* main_thread;
QPlainTextEdit* ip_list;
QPlainTextEdit* port_list;
QTextEdit* output_list;
trytry* try_telnet;
QString ip_list;
QString port_list;
trytry *connecttry;
void tray(const QString& ipstr, quint32 ipint);
void run();
void f_one(qint16 temp);
signals:
void dispatch_finish();
void dispatch_one();
void return_jindu(quint16);
void connect_ok(QString);
};
+333 -52
View File
@@ -3,14 +3,66 @@
void Widget::auto_edit()
void Widget::keyboard_en(bool a)
{
//qDebug("%d",rand());
ui->pushButton_2->setDisabled(a);
ui->pushButton_3->setDisabled(a);
ui->pushButton_4->setDisabled(a);
ui->pushButton_5->setDisabled(a);
ui->pushButton_6->setDisabled(a);
ui->pushButton_7->setDisabled(a);
ui->pushButton_8->setDisabled(a);
ui->pushButton_9->setDisabled(a);
ui->pushButton_10->setDisabled(a);
ui->pushButton_11->setDisabled(a);
ui->pushButton_12->setDisabled(a);
ui->pushButton_13->setDisabled(a);
ui->pushButton_14->setDisabled(a);
ui->pushButton_15->setDisabled(a);
ui->pushButton_16->setDisabled(a);
ui->pushButton_17->setDisabled(a);
ui->pushButton_18->setDisabled(a);
ui->pushButton_19->setDisabled(a);
ui->pushButton_20->setDisabled(a);
ui->pushButton_21->setDisabled(a);
ui->pushButton_22->setDisabled(a);
ui->pushButton_23->setDisabled(a);
ui->pushButton_24->setDisabled(a);
ui->pushButton_25->setDisabled(a);
ui->pushButton_26->setDisabled(a);
ui->pushButton_27->setDisabled(a);
ui->pushButton_28->setDisabled(a);
ui->pushButton_29->setDisabled(a);
ui->pushButton_30->setDisabled(a);
ui->pushButton_31->setDisabled(a);
ui->pushButton_32->setDisabled(a);
ui->pushButton_33->setDisabled(a);
ui->pushButton_34->setDisabled(a);
ui->pushButton_35->setDisabled(a);
ui->pushButton_36->setDisabled(a);
ui->pushButton_37->setDisabled(a);
ui->pushButton_38->setDisabled(a);
ui->pushButton_39->setDisabled(a);
ui->pushButton_40->setDisabled(a);
ui->pushButton_41->setDisabled(a);
ui->pushButton_42->setDisabled(a);
ui->pushButton_43->setDisabled(a);
ui->pushButton_44->setDisabled(a);
}
void Widget::output_chuli(QString temp)
{
ui->outputlist->append(temp);
}
void Widget::jindu_chuli(quint16 temp)
{
//qDebug()<<temp;
ui->progressBar->setValue(temp);
}
@@ -20,81 +72,310 @@ Widget::Widget(QWidget *parent)
{
ui->setupUi(this);
//qDebug("hello world");
ui->outputlist->setReadOnly(true);
ui->stard_scan->setText("start scan");
//main_thread = new QThread(this);
//main_thread->start();
connect(ui->stard_scan, &QPushButton::pressed, [=]()
{
if(scan_flag==0)
{
connect(this,&Widget::start_scan,[=]{
scan_flag=1;
keyboard_en(true);
ui->IP_list->setReadOnly(true);
ui->port_list->setReadOnly(true);
ui->timeout->setReadOnly(true);
ui->threads->setReadOnly(true);
ui->stard_scan->setText("停止");
//dispatch* dispatch_thread;
dispatch_thread = new dispatch;
dispatch_thread->ip_list = ui->IP_list;
dispatch_thread->port_list = ui->port_list;
dispatch_thread->output_list = ui->outputlist;
ui->stard_scan->setText("stop scan");
dispatch_thread = new dispatch;//线程分发
dispatch_thread->ip_list=ui->IP_list->toPlainText();
dispatch_thread->port_list=ui->port_list->toPlainText();
dispatch_thread->set_thread_num = ui->threads->value();
dispatch_thread->now_thread_num = 0;
dispatch_thread->timeout = ui->timeout->value();
dispatch_thread->nt_bar=&nt_bar;
dispatch_thread->t_bar=&t_bar;
//dispatch_thread->main_thread = main_thread;
//dispatch_thread->moveToThread(main_thread);
connect(dispatch_thread, &dispatch::dispatch_one, [=]()
{
//qDebug()<<100*nt_bar/t_bar;
//ui->t_bar->setValue(100*nt_bar/t_bar);
ui->stard_scan->setText(QString("停止 %1%").arg(100*nt_bar/t_bar));
connect(dispatch_thread,&dispatch::dispatch_finish,[=]{
emit stop_scan();
});
connect(dispatch_thread, &dispatch::finished, [=]()
{
qDebug() << "dispatch_finish";
connect(dispatch_thread,&dispatch::return_jindu,this,&Widget::jindu_chuli,Qt::QueuedConnection);
connect(dispatch_thread,&dispatch::connect_ok,this,&Widget::output_chuli,Qt::QueuedConnection);
ui->progressBar->setValue(0);
dispatch_thread->start();
ui->stard_scan->setDisabled(false);
});
connect(this,&Widget::stop_scan,[=]{
scan_flag=0;
keyboard_en(false);
ui->IP_list->setReadOnly(false);
ui->port_list->setReadOnly(false);
ui->timeout->setReadOnly(false);
ui->threads->setReadOnly(false);
ui->stard_scan->setText("开始扫描");
scan_flag=0;
ui->stard_scan->setText("start scan");
disconnect(dispatch_thread);
//dispatch_thread->disconnect();
dispatch_thread->quit();
dispatch_thread->wait();
//delete dispatch_thread;
ui->stard_scan->setDisabled(false);
qDebug() << "tray_exit";
});
dispatch_thread->start();
connect(ui->stard_scan, &QPushButton::pressed, [=]()
{
ui->stard_scan->setDisabled(true);
if(scan_flag==0)
{
emit start_scan();
}else
{
qDebug() << "tray_exit";
dispatch_thread->terminate();
emit stop_scan();
}
});//'scan button pass'
connect(ui->pushButton_2, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_2->text());
});
connect(ui->pushButton_3, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_3->text());
});
connect(ui->pushButton_4, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_4->text());
});
connect(ui->pushButton_5, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_5->text());
});
connect(ui->pushButton_6, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText("\n");
});
connect(ui->pushButton_7, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_7->text());
});
connect(ui->pushButton_8, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_8->text());
});
connect(ui->pushButton_9, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_9->text());
});
connect(ui->pushButton_10, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_10->text());
});
connect(ui->pushButton_11, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_11->text());
});
connect(ui->pushButton_12, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_12->text());
});
connect(ui->pushButton_13, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_13->text());
});
connect(ui->pushButton_14, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_14->text());
});
connect(ui->pushButton_15, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_15->text());
});
connect(ui->pushButton_16, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_16->text());
});
connect(ui->pushButton_17, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_17->text());
});
connect(ui->pushButton_18, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_18->text());
});
connect(ui->pushButton_19, &QPushButton::pressed, [=]()
{
ui->IP_list->insertPlainText(ui->pushButton_19->text());
});
connect(ui->pushButton_21, &QPushButton::pressed, [=]()
{
ui->IP_list->clear();
});
//connect(ui->IP_list,&QTextEdit::textChanged,this, &Widget::auto_edit);
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());
});
connect(ui->clearoutput, &QPushButton::pressed, [=]()
{
ui->outputlist->clear();
});
}
Widget::~Widget()
+6
View File
@@ -33,6 +33,12 @@ public:
quint64 t_bar=0;
quint64 nt_bar=0;
void output_chuli(QString temp);
void jindu_chuli(quint16 temp);
void keyboard_en(bool a);
signals:
void stop_scan();
void start_scan();
private:
Ui::Widget* ui;
+611 -38
View File
@@ -6,19 +6,19 @@
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<width>800</width>
<height>500</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<width>800</width>
<height>500</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<width>800</width>
<height>500</height>
</size>
</property>
@@ -44,9 +44,9 @@
<widget class="QPushButton" name="stard_scan">
<property name="geometry">
<rect>
<x>420</x>
<x>690</x>
<y>220</y>
<width>171</width>
<width>91</width>
<height>41</height>
</rect>
</property>
@@ -62,14 +62,14 @@
</font>
</property>
<property name="text">
<string>开始扫描</string>
<string>Start</string>
</property>
</widget>
<widget class="QSpinBox" name="threads">
<property name="geometry">
<rect>
<x>350</x>
<y>230</y>
<x>240</x>
<y>240</y>
<width>61</width>
<height>22</height>
</rect>
@@ -81,14 +81,14 @@
<number>999</number>
</property>
<property name="value">
<number>10</number>
<number>100</number>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>320</x>
<y>230</y>
<x>240</x>
<y>220</y>
<width>31</width>
<height>16</height>
</rect>
@@ -97,30 +97,17 @@
<string>线程</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>10</x>
<y>230</y>
<width>53</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>扫描结果</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>70</x>
<y>230</y>
<width>91</width>
<x>10</x>
<y>240</y>
<width>81</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>保存扫描结果</string>
<string>Save output</string>
</property>
</widget>
<widget class="QLabel" name="label">
@@ -128,13 +115,14 @@
<rect>
<x>10</x>
<y>20</y>
<width>141</width>
<width>171</width>
<height>71</height>
</rect>
</property>
<property name="text">
<string>IP范围
<string>IP范围 总数不能超过2147483647
127.0.0.1
192.168.0.0/24
0.0.0.0-255.255.255.255
domain.com</string>
</property>
@@ -144,7 +132,7 @@ domain.com</string>
<rect>
<x>10</x>
<y>270</y>
<width>581</width>
<width>771</width>
<height>221</height>
</rect>
</property>
@@ -155,8 +143,8 @@ domain.com</string>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>200</x>
<y>230</y>
<x>170</x>
<y>220</y>
<width>41</width>
<height>16</height>
</rect>
@@ -168,8 +156,8 @@ domain.com</string>
<widget class="QSpinBox" name="timeout">
<property name="geometry">
<rect>
<x>250</x>
<y>230</y>
<x>170</x>
<y>240</y>
<width>61</width>
<height>22</height>
</rect>
@@ -189,7 +177,7 @@ domain.com</string>
<rect>
<x>10</x>
<y>100</y>
<width>471</width>
<width>301</width>
<height>111</height>
</rect>
</property>
@@ -197,13 +185,598 @@ domain.com</string>
<widget class="QPlainTextEdit" name="port_list">
<property name="geometry">
<rect>
<x>490</x>
<x>483</x>
<y>100</y>
<width>104</width>
<width>111</width>
<height>111</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>320</x>
<y>100</y>
<width>61</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>192.168.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_3">
<property name="geometry">
<rect>
<x>320</x>
<y>130</y>
<width>61</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>169.254.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_4">
<property name="geometry">
<rect>
<x>320</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>10.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_5">
<property name="geometry">
<rect>
<x>350</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>100.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_6">
<property name="geometry">
<rect>
<x>320</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>ENT</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_7">
<property name="geometry">
<rect>
<x>350</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>/</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_8">
<property name="geometry">
<rect>
<x>380</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_9">
<property name="geometry">
<rect>
<x>440</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_10">
<property name="geometry">
<rect>
<x>410</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_11">
<property name="geometry">
<rect>
<x>380</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_12">
<property name="geometry">
<rect>
<x>410</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>2</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_13">
<property name="geometry">
<rect>
<x>440</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>3</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_14">
<property name="geometry">
<rect>
<x>380</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>4</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_15">
<property name="geometry">
<rect>
<x>410</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>5</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_16">
<property name="geometry">
<rect>
<x>440</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>6</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_17">
<property name="geometry">
<rect>
<x>380</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>7</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_18">
<property name="geometry">
<rect>
<x>410</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>8</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_19">
<property name="geometry">
<rect>
<x>440</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>9</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_20">
<property name="geometry">
<rect>
<x>380</x>
<y>220</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>Ping Olny</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_21">
<property name="geometry">
<rect>
<x>320</x>
<y>220</y>
<width>61</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>clear</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_22">
<property name="geometry">
<rect>
<x>600</x>
<y>100</y>
<width>61</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>1-65535</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_23">
<property name="geometry">
<rect>
<x>600</x>
<y>130</y>
<width>41</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>80;443</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_24">
<property name="geometry">
<rect>
<x>620</x>
<y>160</y>
<width>21</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>22</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_25">
<property name="geometry">
<rect>
<x>640</x>
<y>160</y>
<width>21</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>23</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_26">
<property name="geometry">
<rect>
<x>600</x>
<y>160</y>
<width>21</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>21</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_27">
<property name="geometry">
<rect>
<x>640</x>
<y>130</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>3389</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_28">
<property name="geometry">
<rect>
<x>660</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>445</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_29">
<property name="geometry">
<rect>
<x>600</x>
<y>190</y>
<width>41</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>25565</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_30">
<property name="geometry">
<rect>
<x>640</x>
<y>190</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>25;587</string>
</property>
</widget>
<widget class="QProgressBar" name="progressBar">
<property name="geometry">
<rect>
<x>487</x>
<y>230</y>
<width>111</width>
<height>23</height>
</rect>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
<widget class="QPushButton" name="pushButton_31">
<property name="geometry">
<rect>
<x>690</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>4</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_32">
<property name="geometry">
<rect>
<x>750</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>6</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_33">
<property name="geometry">
<rect>
<x>690</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_34">
<property name="geometry">
<rect>
<x>720</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>2</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_35">
<property name="geometry">
<rect>
<x>720</x>
<y>130</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>5</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_36">
<property name="geometry">
<rect>
<x>720</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>8</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_37">
<property name="geometry">
<rect>
<x>750</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>9</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_38">
<property name="geometry">
<rect>
<x>690</x>
<y>160</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>7</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_39">
<property name="geometry">
<rect>
<x>750</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>3</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_41">
<property name="geometry">
<rect>
<x>720</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_42">
<property name="geometry">
<rect>
<x>750</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>-</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_40">
<property name="geometry">
<rect>
<x>660</x>
<y>100</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>ENT</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_43">
<property name="geometry">
<rect>
<x>600</x>
<y>220</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>clear</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_44">
<property name="geometry">
<rect>
<x>690</x>
<y>190</y>
<width>31</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>;</string>
</property>
</widget>
<widget class="QPushButton" name="clearoutput">
<property name="geometry">
<rect>
<x>90</x>
<y>240</y>
<width>71</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>clear output</string>
</property>
</widget>
</widget>
<resources/>
<connections/>