py2.7+pyqt4开发端口检测工具

py2.7+pyqt4开发端口检测工具

  使用工具:python2.7,pyqt4,pyinstaller,pywin32

  先贴代码

  1 import sys
  2 from PyQt4 import QtGui,QtCore
  3 
  4 import threading
  5 import thread
  6 import os
  7 import re
  8 import urllib
  9 import socket
 10 import time
 11 
 12 
 13 global maxNum
 14 global cnt
 15 global sign
 16 
 17 class Main_QWidget(QtGui.QWidget):
 18     def __init__(self):
 19         QtGui.QWidget.__init__(self)
 20 
 21         self.ipaddr=QtGui.QLineEdit(self)
 22         self.portBegin=QtGui.QLineEdit(self)
 23         self.portEnd=QtGui.QLineEdit(self)
 24         self.GoButton=QtGui.QPushButton('Go',self)
 25         self.out=QtGui.QTextBrowser()
 26 
 27         self.ipinfo=QtGui.QLabel("input the ip : ")
 28         self.portinfo1=QtGui.QLabel("input the begin port : ")
 29         self.portinfo2=QtGui.QLabel("input the end   port : ")
 30         self.resinfo=QtGui.QLabel(" the res : ")
 31         
 32         #self.status=QtGui.QTextBrowser()
 33         
 34         grid=QtGui.QGridLayout()
 35         
 36         grid.addWidget(self.ipinfo,0,0,1,3)
 37         grid.addWidget(self.ipaddr,1,0,1,3)
 38         
 39         grid.addWidget(self.portinfo1,2,0,1,3)
 40         grid.addWidget(self.portBegin,3,0,1,3)
 41         
 42         grid.addWidget(self.portinfo2,4,0,1,3)
 43         grid.addWidget(self.portEnd,5,0,1,3)
 44         
 45         grid.addWidget(self.GoButton,6,0,1,3)
 46         
 47         grid.addWidget(self.resinfo,7,0,1,3)
 48         grid.addWidget(self.out,8,0,1,3)
 49         
 50         
 51         #grid.addWidget(self.status,5,1,1,3)
 52         
 53 
 54         self.resize(300,600)
 55         self.setLayout(grid)
 56         self.setWindowTitle("find the open port = =")
 57 
 58         self.connect(self.GoButton,QtCore.SIGNAL('clicked()'),gogogo)
 59 
 60         def getIpAddr(self):
 61             return self.ipaddr.text()
 62         def getPortBegin(self):
 63             return self.portBegin.text()
 64         def getPortEnd(self):
 65             return self.portEnd.text()
 66 
 67 def gogogo1():
 68     print("hello,world\n")
 69     print("ip :",main.ipaddr.text())
 70     print("begin: ",main.portBegin.text())
 71     print("end: ",main.portEnd.text())
 72     main.out.append("??")
 73 
 74 def output(temp,interval):
 75     main.out.append("open port: "+str(temp))
 76 
 77 def tryconnect(temp,interval):
 78     global cnt
 79     global sign
 80     s=socket.socket()
 81     ttemp=int(temp)
 82     t=s.connect_ex((main.ipaddr.text(),ttemp))
 83     if t==0:
 84         sign=1
 85         #thread.start_new_thread(output,(temp,1))
 86         main.out.append("open port: "+str(ttemp))
 87         print("   find open port: ",ttemp)
 88         cnt=cnt-1
 89         thread.exit()
 90         return True
 91     else:
 92         cnt=cnt-1
 93         thread.exit()
 94         return False
 95 
 96 def sleep(temp,interval):
 97     time.sleep(1)
 98     thread.exit()
 99 
100 def gogogo():
101     global cnt
102     global maxNum
103     global sign
104     sign=0;
105     #main.GoButton.setEnabled(0)
106     main.out.append(" finding "+ main.ipaddr.text() + " open port ing...")
107     i=int(main.portBegin.text());
108     while i<=int(main.portEnd.text()):
109         print("threadnum= ", cnt,"port= ",i)
110         #main.status.append( "cnt= "+str(cnt)+"i= "+str(i) )
111         if( cnt < maxNum ):
112             thread.start_new_thread(tryconnect,(i,1))
113             i=i+1
114             cnt=cnt+1
115         #else:
116         #    thread.start_new_thread(sleep,(1,1))
117         #    time.sleep(0.1)
118         #    print("waiting...")
119     if sign==0:
120         main.out.append(" no open port in range port...")
121     #main.GoButton.setEnabled(1)
122     return True
123      
124 
125 if __name__=="__main__":
126     global maxNum
127     maxNum=800
128     global cnt
129     cnt=0
130 
131     app=QtGui.QApplication(sys.argv)
132     main=Main_QWidget()
133     main.show()
134     sys.exit(app.exec_())
135     
find_open_port

  先说说遇到的问题,我是python菜鸟,昨天用python3.4写的,然后各种找,用到啥百度啥,最后终于让我把程序写好了,后来打包成exe文件时候遇到问题了,今天上午来卸载了3.4改成了2.7,用pyinstaller打包,成了!

 

  先写这么多,到时候补充吧。

posted on 2014-06-19 15:29 symons 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/symons1992/p/3796714.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 和 parfor

一次遇到两个不熟悉的&#xff0c;因此在一起记一下。 OpenCV的全称是&#xff1a;Open Source Computer Vision Library。 OpenCv是一个基于&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux,Windows和Mac OS操作系统上。它轻量级而且高效—…

配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...

今天遇到了这个问题&#xff0c; 电脑系统&#xff1a;vs2010 win7系统 iis7 我运行在iis中配置的那个网站后&#xff0c;报错&#xff1a;错误代码 0x800700b7 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节 这个问题原因在于window7的II…

Base64 四种方式的编码和解码

base64与字符串String之间的相互转换 package com.wzq;import javax.xml.bind.DatatypeConverter; import java.io.UnsupportedEncodingException; import java.util.Base64;/*** ClassName Base64Utils* Description: TODO* Author wzq* CreateDate 2019/10/14* UpdateDate 2…

邮件服务器“单点登录”功能

现状分析&#xff1a; 相信我们每个人都有这样的经历&#xff0c;比方说银行卡多的人要具体记忆每张卡的密码挺麻烦&#xff1b;现代人兴 趣广泛&#xff0c;爱好多多&#xff0c;运动健身俱乐部、娱乐游戏休闲、购物理财等各种场合少不了获得入门的“通行证”&#xff0c;要输…

【kafka】 windows平台搭建及使用

一、安装 kafka 需要java环境&#xff1b;kafka 最新版本内置了 zookeeper&#xff0c;所以不需要安装zookeeper&#xff1b;下载kafka最新版本&#xff0c;因为下载的是tgz文件&#xff0c;所以不需要安装&#xff0c;解压到相应的地方就可以了。下载地址&#xff1a;http://…

Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建

1.Linux Mint由Linux Mint Team团队于2006年开始发行&#xff0c;是一份基于Debian和Ubuntu的Linux发行版。其目标是提供一种更完整的即刻可用体验&#xff0c;这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件&#xff0c;它也增加了一套定制桌面及各种…

Extjs发票管理系统

技术特点&#xff1a;Extjs框架&#xff0c;三层架构&#xff0c;Ajax,json 1.仿office2007菜单.介面美观大方,可动态更改皮肤保存至cookie。 2,json数据源与实体类的相互转换. 3.可下载桌面版登录方式,统计在线人数. 4, chm操作手册,方便操作人员熟悉. 功能描述&#xff1a; 1…

Json串和java对象进行转时

json-lib-xxx.jarezmorph-xxx.jar //>依赖包 JsonConfig config new JsonConfig();//有选择性的过滤掉一些属性值 JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(new String[] { "yyyy-MM-dd" }));//注册一个json转为java.util.date的日期格…

Fast Matrix Operations

uva11992:http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem3143 题意&#xff1a;给你n*m的矩阵初始化的时候矩阵里面的元素全部是0&#xff0c;对于这个矩阵有3中操作。 1 x1 y1 x2 y2 v 把&#xff08;x1 y1 x2…

struts2+jquery 实现ajax登陆

一、新建一个web项目&#xff1a;test,配置好struts2的环境(详细配置见&#xff1a;http://www.cnblogs.com/wuweidu/p/3841297.html) 导入Jquery的js文件到项目 二、在com.action包下&#xff0c;新建一个loginAction.java loginAction.java的代码如下 package com.action;imp…

Docker Kafka 单机版安装

一、安装 下载library/zookeeper并运行 docker run --name zookeeper -d -p 2181:2181 -v /etc/localtime:/etc/localtime library/zookeeper 测试zookeeper端口是否通wget IP:2181 下载wurstmeister/kafka并运行 docker run -d --name kafka -p 9092:9092 --link zookeeper…

Docker 安装nginx,并挂载文件

创建挂载所需目录&#xff1a; mkdir /test/server/nginx/{conf,logs,html,conf.d} /test/server/nginx/conf创建nginx.conf文件&#xff0c;并编辑: user nginx; worker_processes 1;error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;events {wor…

ArrayList 源码分析

介绍 ArrayList 是一个数组队列&#xff0c;相当于 动态数组。与Java中的数组相比&#xff0c;它的容量能动态增长。 结构 ArrayList继承于AbstractList&#xff0c;实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。如下图&#xff1a; public class Arra…

Docker 简单入门(一)

Docker 简介 Docker是一个开源的容器引擎&#xff0c;它有助于更快地交付应。Docker可将应用程序和基础设施层隔离&#xff0c;并且能将基础设施当作程序-样进行管理。使用Docker&#xff0c;可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 Docke…

PDF解决方案(2)--文件转PDF

相关专题链接&#xff1a; PDF解决方案&#xff08;1&#xff09;--文件上传 PDF解决方案&#xff08;2&#xff09;--文件转PDF PDF解决方案&#xff08;3&#xff09;--PDF转SWF PDF解决方案&#xff08;4&#xff09;--在线浏览 前言&#xff1a;上一篇中讲到的文件上传&…

Docker 常用命令(二)

Docker 镜像常用命令 搜索镜像 可使用 docker search 命令搜索存放在 Docker Hub 中的镜像。例如&#xff1a; docker search java 执行该命令后&#xff0c; Docker 就会在 Docker Hub 中搜索含有 java 这个关键词的镜像仓库。执行该命令后&#xff0c;可看到类似于如下的表格…

Docker 使用Dockerfile构建Docker(三)

Dockerfile 简单使用 先来编写一个最简单的 Dockerfile。 例如&#xff1a; FROM nginx RUN echo <h1>使用Dockerfile构建镜像</h1> > /usr/share/nginx/html/index.html 该 Dockerfile 非常简单&#xff0c;其中的 FORM 、 RUN 都是 Dockerfile 的指令。 FROM …

网络流之最大流问题

Reference&#xff1a; http://blog.csdn.net/rrerre/article/details/6751520 http://blog.csdn.net/y990041769/article/details/21026445 http://www.nocow.cn/index.php/Translate:USACO/NetworkFlow 最大流Edmonds_Karp算法模板&#xff1a; EK算法即增广路算法。 最大流最…

浅谈 trie树 及其实现

定义&#xff1a;又称字典树&#xff0c;单词查找树或者前缀树&#xff0c;是一种用于快速检索的多叉树结构&#xff0c; 如英文字母的字典树是一个26叉树&#xff0c;数字的字典树是一个10叉树。 核心思想&#xff1a;是空间换时间.利用字符串的公共前缀来降低查询时间的开销以…

Docker-compose 安装与基本使用(四)

安装 Docker-Compose Compose有多种安装方式,例如通过 shell, pip以及将 Compose作为容器安装等。本次安装以Shell 为主。 通过以下命令自动下载并安装适应系统版本的 Compose: curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(un…