python 3.6.7实现端口扫描器

yipeiwu_com7年前Python基础

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

环境:python 3.6.7

# -*- coding: utf-8 -*-
import socket
import threading
import argparse

lock = threading.Lock()
openNum = 0
threads = []

def portscan(ip, port):
 global openNum
 try:
 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 s.connect((ip, port))
 lock.acquire()
 openNum = openNum + 1
 print('[+] %d open' %port)
 lock.release()
 s.close()
 
 except:
 pass
 
def main():
 parse = argparse.ArgumentParser()
 parse.add_argument('-H', dest = 'ip', type = str)
 args = parse.parse_args()
 ip = args.ip
 socket.setdefaulttimeout(3)
 
 for port in range(1, 1024):
 t = threading.Thread(target = portscan, args = (ip, port))
 threads.append(t)
 t.start()
 
 for t in threads:
 t.join()
 
 print('[*] The host:%s scan is complete!' %(ip))
 print('[*] A total of %d open port ' %(openNum))
 
if __name__ == '__main__':
 main()

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

相关文章

Python中那些 Pythonic的写法详解

前言 Martin(Bob大叔)曾在《代码整洁之道》一书打趣地说:当你的代码在做 Code Review 时,审查者要是愤怒地吼道: “What the fuck is this shi...

Python中不同进制的语法及转换方法分析

本文实例讲述了Python中不同进制的语法及转换方法。分享给大家供大家参考,具体如下: 不同进制的书写方式 ① 八进制(Octal) 0o377 ② 十六进制(Hex) 0xFF ③ 二...

不知道这5种下划线的含义,你就不算真的会Python!

不知道这5种下划线的含义,你就不算真的会Python!

什么是 Python? Python 之父 Guido van Rossum 说:Python是一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员用很少的代码来表达自己的想...

Python生成一个迭代器的实操方法

Python生成一个迭代器的实操方法

Python怎么生成一个迭代器,对于需要处理大型数据来说,迭代器是必不可少的,这样可节省大量内存空间,更加合理操作数据。 首先我们打开编辑器,这里以Sublime text3作为示范,...

python中有关时间日期格式转换问题

python中有关时间日期格式转换问题

每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1、字符串转化为日期 str—>date import datetime...