diff --git a/ip_sacaner/scan_run.cpp b/ip_sacaner/scan_run.cpp index 1867649..186d238 100644 --- a/ip_sacaner/scan_run.cpp +++ b/ip_sacaner/scan_run.cpp @@ -26,223 +26,245 @@ quint32 ipv4str_to_int(const QString& ipstr) } } -void trytry::run() + + +trytry::trytry() { - if (ipint != 0 && ipstr != "") - { - //qDebug()<append(temp); - //qDebug() << ipstr<<":"<< ipint; - //msleep(1); - *outputbusy-=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; - } } +void trytry::run() +{ + emit try_one(1); + QString temp = QString("%1:%2").arg(ipstr).arg(ipint); + + + QTcpSocket *m_socket=new QTcpSocket; + + connect(m_socket,&QTcpSocket::disconnected,[=]{ + qDebug()<disconnect(); + m_socket->close(); + m_socket->flush(); + m_socket->deleteLater(); + delete m_socket; + }); + connect(m_socket,&QTcpSocket::connected,[=]{ + emit connect_ok(temp); + qDebug()<connectToHost(ipstr, ipint, QTcpSocket::ReadWrite); + m_socket->waitForConnected(timeout); + m_socket->disconnectFromHost(); + + emit try_one(-1); + +} + + dispatch::dispatch() { } -void dispatch::tray(const QString& ipstr, quint32 ipint) -{ - - - - //qDebug()<<"thread "< set_thread_num) - { - //qDebug()<<"while "<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 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 1) + str_ports_temp=str_port_list.at(i).split(";"); + for (int ii = 0; ii < str_ports_temp.size(); ++ii) { - - ports_num=str_ports_list.at(str_ports_list.size() - 1).toInt() -str_ports_list.at(0).toInt()+1; - } - else - { - - 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) - { - //qDebug() << str_ip_list.at(i); - str_ips_list = str_ip_list.at(i).split("-"); - if (str_ips_list.size() > 1) - { - - 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++) + if(ex_port.exactMatch(str_ports_temp.at(ii))) { - //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()< 1) + qDebug()<portb) { + for(;portb<=porta;portb++) + { + ports_list.append(portb); + ports_num+=1; - for (quint32 prots = str_ports_list.at(0).toInt(); prots < str_ports_list.at(str_ports_list.size() - 1).toInt() + 1; prots++) + } + }else if(portb>porta) + { + for(;porta<=portb;porta++) { - dispatch::tray(str_ips_list.at(0), prots); - } - } - else - { + ports_list.append(porta); + ports_num+=1; - dispatch::tray(str_ips_list.at(0), str_ports_list.at(0).toInt()); + } + }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; - //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; - //} + 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() <now_thread_num>this->set_thread_num); + + } + } - //sleep(1); - while(now_thread_num); + + + emit dispatch_finish(); } +void dispatch::f_one(qint16 temp) +{ + this->now_thread_num+=temp; - - +} diff --git a/ip_sacaner/scan_run.h b/ip_sacaner/scan_run.h index a9e72ad..a11cc59 100644 --- a/ip_sacaner/scan_run.h +++ b/ip_sacaner/scan_run.h @@ -9,26 +9,22 @@ #include //socket #include #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(); - +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); }; diff --git a/ip_sacaner/widget.cpp b/ip_sacaner/widget.cpp index 17d2e8e..ab24285 100644 --- a/ip_sacaner/widget.cpp +++ b/ip_sacaner/widget.cpp @@ -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()<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"); + 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("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(); + connect(dispatch_thread,&dispatch::dispatch_finish,[=]{ + emit stop_scan(); + }); + 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("start scan"); - //main_thread = new QThread(this); - //main_thread->start(); - connect(ui->stard_scan, &QPushButton::pressed, [=]() - { + //dispatch_thread->disconnect(); + 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) { - scan_flag=1; - - 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; - - - 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::finished, [=]() - { - qDebug() << "dispatch_finish"; - 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; - - disconnect(dispatch_thread); - //delete dispatch_thread; - }); - dispatch_thread->start(); + 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() diff --git a/ip_sacaner/widget.h b/ip_sacaner/widget.h index 234185b..db22ab4 100644 --- a/ip_sacaner/widget.h +++ b/ip_sacaner/widget.h @@ -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; diff --git a/ip_sacaner/widget.ui b/ip_sacaner/widget.ui index 9d59167..400cf8c 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 @@ - 420 + 690 220 - 171 + 91 41 @@ -62,14 +62,14 @@ - 开始扫描 + Start - 350 - 230 + 240 + 240 61 22 @@ -81,14 +81,14 @@ 999 - 10 + 100 - 320 - 230 + 240 + 220 31 16 @@ -97,30 +97,17 @@ 线程 - - - - 10 - 230 - 53 - 16 - - - - 扫描结果 - - - 70 - 230 - 91 + 10 + 240 + 81 24 - 保存扫描结果 + Save output @@ -128,13 +115,14 @@ 10 20 - 141 + 171 71 - IP范围 + IP范围 总数不能超过2147483647 127.0.0.1 +192.168.0.0/24 0.0.0.0-255.255.255.255 domain.com @@ -144,7 +132,7 @@ domain.com 10 270 - 581 + 771 221 @@ -155,8 +143,8 @@ domain.com - 200 - 230 + 170 + 220 41 16 @@ -168,8 +156,8 @@ domain.com - 250 - 230 + 170 + 240 61 22 @@ -189,7 +177,7 @@ domain.com 10 100 - 471 + 301 111 @@ -197,13 +185,598 @@ domain.com - 490 + 483 100 - 104 + 111 111 + + + + 320 + 100 + 61 + 23 + + + + 192.168. + + + + + + 320 + 130 + 61 + 23 + + + + 169.254. + + + + + + 320 + 160 + 31 + 23 + + + + 10. + + + + + + 350 + 160 + 31 + 23 + + + + 100. + + + + + + 320 + 190 + 31 + 23 + + + + ENT + + + + + + 350 + 190 + 31 + 23 + + + + / + + + + + + 380 + 190 + 31 + 23 + + + + . + + + + + + 440 + 190 + 31 + 23 + + + + - + + + + + + 410 + 190 + 31 + 23 + + + + 0 + + + + + + 380 + 100 + 31 + 23 + + + + 1 + + + + + + 410 + 100 + 31 + 23 + + + + 2 + + + + + + 440 + 100 + 31 + 23 + + + + 3 + + + + + + 380 + 130 + 31 + 23 + + + + 4 + + + + + + 410 + 130 + 31 + 23 + + + + 5 + + + + + + 440 + 130 + 31 + 23 + + + + 6 + + + + + + 380 + 160 + 31 + 23 + + + + 7 + + + + + + 410 + 160 + 31 + 23 + + + + 8 + + + + + + 440 + 160 + 31 + 23 + + + + 9 + + + + + + 380 + 220 + 91 + 41 + + + + Ping Olny + + + + + + 320 + 220 + 61 + 41 + + + + 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 + + + + ; + + + + + + 90 + 240 + 71 + 23 + + + + clear output + +