python编写简单端口扫描器

yipeiwu_com7年前Python基础

本文实例为大家分享了python编写简单端口扫描器的具体代码,供大家参考,具体内容如下

直接放代码

此代码只支持扫描域名,要扫描IP请自己修改

from socket import *
from threading import Thread
import optparse
Port = [80,21,23,22,25,110,443,1080,3306,3389,1521,1433]
Server = ['HTTP','FTP','TELNET','SSH','SMTP','POP3','HTTPS','SOCKS','MYSQL','Misrosoft RDP','Oracle','Sql Server']
def Scan(tghost,tgport,Server):
  try:
    s=socket()
    s.connect((tghost,tgport))
    print(tghost+'____>'+str(tgport)+' open',end='||||| ')
    print(str(tgport)+'---->'+Server)
    s.close()
  except:
    print(str(tgport)+'----> '+'not open')

def hostToaddr(host):#将域名转成ip
  try:
    return gethostbyname(host)
  except:
    return 
def main():
  parser=optparse.OptionParser()
  parser.add_option('-t', dest='dname')
  #parser.add_option('-p',dest='pname')
  (options,args)=parser.parse_args()


  if(options.dname==None):
    print('[-] You must specify a target host and port')
    exit(0)
  else:
    tgname=options.dname
  ip=hostToaddr(tgname)
  #Scan(ip)
  for i,j in zip(Port,Server):#用线程提高速度
    t=Thread(target=Scan,args=(ip,i,j))
    t.start()
  input()#cmd界面如果快速闪退,请加入这条代码
if __name__=='__main__':
  main()

运行代码

代码执行结果

因为代码过于简单,这里我就不具体解释了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

1:listWidget 以滚动窗口显示文件下的所有文件: self.listWidget = QtWidgets.QListWidget(self.gridLayout...

Django用户认证系统 User对象解析

User对象 User对象是认证系统的核心。用户对象通常用来代表网站的用户,并支持例如访问控制、注册用户、关联创建者和内容等。在Django认证框架中只有一个用户类,例如超级用户('s...

对python中url参数编码与解码的实例详解

一、简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码。 二、关键代码 1、url编码 对字符串编码用urllib.parse包下的quote(stri...

python中requests爬去网页内容出现乱码问题解决方法介绍

最近在学习python爬虫,使用requests的时候遇到了不少的问题,比如说在requests中如何使用cookies进行登录验证,这可以查看这篇文章。这篇博客要解决的问题是如何避免在...

Python的requests网络编程包使用教程

Python的requests网络编程包使用教程

早就听说requests的库的强大,只是还没有接触,今天接触了一下,发现以前使用urllib,urllib2等方法真是太搓了…… 这里写些简单的使用初步作为一个记录 一、下载 官方项目...