python编写简单端口扫描器

yipeiwu_com5年前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设计】。

相关文章

详解python中自定义超时异常的几种方法

最近在项目中调用第三方接口时候,经常会出现请求超时的情况,或者参数的问题导致调用异代码异常。针对超时异常,查询了python 相关文档,没有并发现完善的包来根据用户自定义的时间来抛出超时...

Pycharm之快速定位到某行快捷键的方法

Pycharm之快速定位到某行快捷键的方法

如下所示: 找了好久,今天无意中敲出来了:ctrl+l(小写) 全局查找某个变量:ctrl+h 我用的Eclipse快捷键 以上这篇Pycharm之快速定位到某行快捷键的方法就是小编分...

python构建深度神经网络(续)

这篇文章在前一篇文章:python构建深度神经网络(DNN)的基础上,添加了一下几个内容: 1) 正则化项 2) 调出中间损失函数的输出 3) 构建了交叉损失函数 4) 将训练好的网络进...

django创建简单的页面响应实例教程

django创建简单的页面响应实例教程

首先 编辑views.py文件 每个响应对应一个函数 函数必须返回一个响应 函数必须存在一个参数 一般约定为request 每个响应函数 对应一个URL from django...

Python2.x中str与unicode相关问题的解决方法

Python2.x中str与unicode相关问题的解决方法

python2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。 我也会在以后学习中,不断的修改此篇博客。 这里假设读者已...