使用工具: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开发端口检测工具的更多相关文章

  1. TCP端口检测工具

    很多时候,我们需要测试 tcp 端口.ping 命令虽然好用,但不能测试端口,因为 ping 基于ICMP协议,属于IP层协议,所以无法测试传输层的 TCP/UDP 端口.幸好有tcping命令,可以 ...

  2. tcping端口检测工具使用

    大家都知道检测网络状态是,无论是服务器/客户机 最常用的就是ping命令,但ping命令只能检测ICMP协议,若对方禁止ping协议了,自然ping命令也就无法检测了,此时,我们可以通过tcping工 ...

  3. Python-通过socket实现一个小型的端口检测工具

    实验机器IP:192.168.220.139,端口开放情况 代码 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import ...

  4. tcping ,一个好用的TCP端口检测工具

    1.常用的用法(windows) tcp -w 10 -t -d -i 5 -j --color 81.156.165.66 443 2. http模式 -u,与-h命令连用,每一行输出目标的url ...

  5. 安全测试 - 端口嗅探工具Nmap

    Nmap 在官网下载nmap端口检测工具https://nmap.org/,nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端. 使用: 通过cmd命令:nmap www.5i5j.c ...

  6. Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector

    那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...

  7. Xenu-web开发死链接检测工具应用

    Xenu 是一款深受业界好评,并被广泛使用的死链接检测工具. 时常检测网站并排除死链接,对网站的SEO 非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任,web程序开发人员还可通过其找到死 ...

  8. 基于端口的弱口令检测工具--iscan

    亲手打造了一款弱口令检测工具,用Python编写,主要可以用于内网渗透.弱口令检测等方面,目前集成了常见端口服务,包含 系统弱口令:ftp.ssh.telnet.ipc$ 数据库弱口令:mssql.m ...

  9. Metasploit是一款开源的安全漏洞检测工具,

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...

随机推荐

  1. 从千分位格式化谈JS性能优化

    所谓的千分位形式,即从个位数起,每三位之间加一个逗号.例如“10,000”.针对这个需求,我起初写了这样一个函数: // 方法一function toThousands(num) {var resul ...

  2. 庭审全程文字实录 z

    备受关注的深圳快播公司涉黄案两日来在北京市海淀法院开庭审理,快播CEO王欣(微博).事业部总经理吴铭.事业部副总经理张克东.事业部副总经理兼市场部总监牛文举出庭接受审理. 面对传播淫秽物品牟利罪的指控 ...

  3. "undefined reference to" 问题解决方法 -链接问题

    最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于unde ...

  4. dede文章页调用当前栏目链接方法

    DedeCMS内容页调用当前栏目其实用下来是调用不出来的,{dede:field.typename/}是有效的,可是 {dede:field.typeurl/}却调不出文档当前栏目所在目录链接URL. ...

  5. 九度OJ1085

    说起这个题呢,就不得不提一种快速求解幂的算法——反复平方法,可以在O(logn)的复杂度完成求幂运算.具体思路我不说,巫泽俊大神翻译的<挑战程序设计竞赛>P123对此有详细描述. 但仅知道 ...

  6. [SQL]SQL类似统计功能的sql文

    declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...

  7. SQLServer 索引以及视图

    业务 主键: 索引: 锁: ========================================= 一个页分为 页头 页体--存储行 页尾 页是有固定大小的,但是数据不一定存满,有可能产生 ...

  8. Redis数据持久化之AOF持久化

    一.RDB持久化的缺点创建RDB文件需要将服务器所有的数据库的数据都保存起来,这是一个非常耗费资源和时间的操作,所以服务器需要隔一段时间才能创建一个新的RDB文件,就也是说创建RDB文件的操作不能执行 ...

  9. ubuntu设置vim语法高亮显示和自动缩进

    转自:http://nichael1983.blog.163.com/blog/static/114969433201002711850604/ 今天自己学习使用vim,当我在vim中输入程序时,默认 ...

  10. xUtils框架介绍(三)

    接上回,继续介绍xUtils的最后两个模块:DbUtils和HttpUtils.首先先介绍第一个SQLite数据库操纵的简单ORM框架,只要能理解xUtils为我们提供的api,相信你也能熟练的把Db ...