欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python编写简单端口扫描器

程序员文章站 2022-05-19 12:13:07
本文实例为大家分享了python编写简单端口扫描器的具体代码,供大家参考,具体内容如下 直接放代码 此代码只支持扫描域名,要扫描ip请自己修改 from so...

本文实例为大家分享了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编写简单端口扫描器

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。