又写了一个pyqt4的小工具主要用来学习

本文介绍了一个使用Python实现的端口扫描模块,详细解释了如何通过Qt框架构建用户界面并执行端口扫描任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分代码:

# -*- coding: utf-8 -*-

"""
Module implementing PortScan.
"""

from PyQt4.QtCore import pyqtSignature
from PyQt4.QtGui import QDialog
from PyQt4 import QtGui,QtCore
from Ui_PortScan import Ui_PortScan
import socket
class PortScan(QDialog, Ui_PortScan):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor

@param parent reference to the parent widget (QWidget)
"""
QDialog.__init__(self, parent)
self.setupUi(self)
# QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL("clicked()"),self.on_pushButton_clicked)
@pyqtSignature("")
def on_pushButton_clicked(self):
for ip in self.getiplist():
self.socket_port(ip)

def getiplist(self):
self.startnum = int(self.ip2num(str(self.startlineEdit.text())))
self.endnum = int(self.ip2num(str(self.endlineEdit.text())))
iplist = []
for num in range(self.startnum,self.endnum+1):
ip = self.num2ip(num)
iplist.append(ip)
return iplist

def ip2num(self,ip):
ip = [int(x) for x in ip.split('.')]
return ip[0]<<24|ip[1]<<16|ip[2]<<8|ip[3]
def num2ip(self,num):
return '%s.%s.%s.%s' % ( (num & 0xff000000) >> 24,
(num & 0x00ff0000) >> 16,
(num & 0x0000ff00) >> 8,
num & 0x000000ff)
def socket_port(self,ip):
port = int(self.portlineEdit.text())
try:
self.messagelabel.setText(u"正在扫描IP:%s:%d..."%(ip,port))
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((ip,port))
self.textEdit.append('IP:%s:%d Open' % (ip,port))
except:
self.textEdit.append('IP:%s:%d Closed' % (ip,port))

if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = PortScan()
ui.show()
sys.exit(app.exec_())

转载于:https://www.cnblogs.com/xiewb/p/4580957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值