py2.7+pyqt4开发端口检测工具
使用工具:python2.7,pyqt4,pyinstaller,pywin32
先贴代码
import sys
from PyQt4 import QtGui,QtCore import threading
import thread
import os
import re
import urllib
import socket
import time global maxNum
global cnt
global sign class Main_QWidget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self) self.ipaddr=QtGui.QLineEdit(self)
self.portBegin=QtGui.QLineEdit(self)
self.portEnd=QtGui.QLineEdit(self)
self.GoButton=QtGui.QPushButton('Go',self)
self.out=QtGui.QTextBrowser() self.ipinfo=QtGui.QLabel("input the ip : ")
self.portinfo1=QtGui.QLabel("input the begin port : ")
self.portinfo2=QtGui.QLabel("input the end port : ")
self.resinfo=QtGui.QLabel(" the res : ") #self.status=QtGui.QTextBrowser() grid=QtGui.QGridLayout() grid.addWidget(self.ipinfo,0,0,1,3)
grid.addWidget(self.ipaddr,1,0,1,3) grid.addWidget(self.portinfo1,2,0,1,3)
grid.addWidget(self.portBegin,3,0,1,3) grid.addWidget(self.portinfo2,4,0,1,3)
grid.addWidget(self.portEnd,5,0,1,3) grid.addWidget(self.GoButton,6,0,1,3) grid.addWidget(self.resinfo,7,0,1,3)
grid.addWidget(self.out,8,0,1,3) #grid.addWidget(self.status,5,1,1,3) self.resize(300,600)
self.setLayout(grid)
self.setWindowTitle("find the open port = =") self.connect(self.GoButton,QtCore.SIGNAL('clicked()'),gogogo) def getIpAddr(self):
return self.ipaddr.text()
def getPortBegin(self):
return self.portBegin.text()
def getPortEnd(self):
return self.portEnd.text() def gogogo1():
print("hello,world\n")
print("ip :",main.ipaddr.text())
print("begin: ",main.portBegin.text())
print("end: ",main.portEnd.text())
main.out.append("??") def output(temp,interval):
main.out.append("open port: "+str(temp)) def tryconnect(temp,interval):
global cnt
global sign
s=socket.socket()
ttemp=int(temp)
t=s.connect_ex((main.ipaddr.text(),ttemp))
if t==0:
sign=1
#thread.start_new_thread(output,(temp,1))
main.out.append("open port: "+str(ttemp))
print(" find open port: ",ttemp)
cnt=cnt-1
thread.exit()
return True
else:
cnt=cnt-1
thread.exit()
return False def sleep(temp,interval):
time.sleep(1)
thread.exit() def gogogo():
global cnt
global maxNum
global sign
sign=0;
#main.GoButton.setEnabled(0)
main.out.append(" finding "+ main.ipaddr.text() + " open port ing...")
i=int(main.portBegin.text());
while i<=int(main.portEnd.text()):
print("threadnum= ", cnt,"port= ",i)
#main.status.append( "cnt= "+str(cnt)+"i= "+str(i) )
if( cnt < maxNum ):
thread.start_new_thread(tryconnect,(i,1))
i=i+1
cnt=cnt+1
#else:
# thread.start_new_thread(sleep,(1,1))
# time.sleep(0.1)
# print("waiting...")
if sign==0:
main.out.append(" no open port in range port...")
#main.GoButton.setEnabled(1)
return True if __name__=="__main__":
global maxNum
maxNum=800
global cnt
cnt=0 app=QtGui.QApplication(sys.argv)
main=Main_QWidget()
main.show()
sys.exit(app.exec_())
find_open_port
先说说遇到的问题,我是python菜鸟,昨天用python3.4写的,然后各种找,用到啥百度啥,最后终于让我把程序写好了,后来打包成exe文件时候遇到问题了,今天上午来卸载了3.4改成了2.7,用pyinstaller打包,成了!
先写这么多,到时候补充吧。


py2.7+pyqt4开发端口检测工具的更多相关文章
- TCP端口检测工具
很多时候,我们需要测试 tcp 端口.ping 命令虽然好用,但不能测试端口,因为 ping 基于ICMP协议,属于IP层协议,所以无法测试传输层的 TCP/UDP 端口.幸好有tcping命令,可以 ...
- tcping端口检测工具使用
大家都知道检测网络状态是,无论是服务器/客户机 最常用的就是ping命令,但ping命令只能检测ICMP协议,若对方禁止ping协议了,自然ping命令也就无法检测了,此时,我们可以通过tcping工 ...
- Python-通过socket实现一个小型的端口检测工具
实验机器IP:192.168.220.139,端口开放情况 代码 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import ...
- tcping ,一个好用的TCP端口检测工具
1.常用的用法(windows) tcp -w 10 -t -d -i 5 -j --color 81.156.165.66 443 2. http模式 -u,与-h命令连用,每一行输出目标的url ...
- 安全测试 - 端口嗅探工具Nmap
Nmap 在官网下载nmap端口检测工具https://nmap.org/,nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端. 使用: 通过cmd命令:nmap www.5i5j.c ...
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector
那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...
- Xenu-web开发死链接检测工具应用
Xenu 是一款深受业界好评,并被广泛使用的死链接检测工具. 时常检测网站并排除死链接,对网站的SEO 非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任,web程序开发人员还可通过其找到死 ...
- 基于端口的弱口令检测工具--iscan
亲手打造了一款弱口令检测工具,用Python编写,主要可以用于内网渗透.弱口令检测等方面,目前集成了常见端口服务,包含 系统弱口令:ftp.ssh.telnet.ipc$ 数据库弱口令:mssql.m ...
- Metasploit是一款开源的安全漏洞检测工具,
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...
随机推荐
- c++学习-特殊类成员
静态变量: #include<iostream> #include<string> #include <typeinfo> using namespace std; ...
- memcache 内部原理实现
Lazy Expiration memcached 内部不会监视记录是否过期,而是在 get 时查看记录的时间戳,检查记录是否过期.这 种技术被称为 lazy(惰性)expiration.因此,mem ...
- centos下yum安装wget失败
执行了yum -y install wget后得到下面的提示 Failed to set locale, defaulting to C Loaded plugins: fastestmirror L ...
- maven打成war包之后没有class文件
用maven打了war包之后部署到tomcat下居然无法执行,看了一下原来没有任何编译的.class文件. 查了一下,是自己手欠把source的src改成src.main.java之类的目录了,但是没 ...
- get/close not same thread Druid 连接池一个设置
我就郁闷了,1000W+数据审核每次总是到一半就出这么个错,仔细找找原来是一个配置项的小问题,removeAbandonedTimeout 这个代表你从连接池取出一个连接多少秒之后你还没还回来,那就强 ...
- iOS 程序打包,安装流程
一.发布测试,是指将你的程序给 * 你的测试人员,因为程序总归是要测试的 * 你的客户,在正式发布之前,客户肯定是要先看(验收)的 在他们的iOS设备(iphone,ipod, ipad)安装 ...
- java调用FFmpeg及mencoder转换视频为FLV并截图
Conver.java package com.ll19.flv; public class Conver { public void run() { try { // 转换并截图 String fi ...
- java从控制台读取数据的方式
1. Scanner sc = new Scanner(System.in); String s = sc.readLine(); 2. BufferReader br = new BufferRea ...
- [AIR] AS3.0设置屏保功能
package com.controls { import flash.desktop.NativeApplication; import flash.events.Event; import fla ...
- [DataTable]控件排序事件中用DataView及DataTable排序
控件排序事件中用DataView及DataTable排序 文章分类:.net编程 在做ASP.NET页面开发时,经常要用到dataset(或者DataTable),绑定到DataGrid或GridVi ...