文章目录

  • 实现功能
  • 具体用法
  • 运用的模块
  • 最终代码
  • 结果展示

实现功能

端口扫描

具体用法

我们这里是模仿nmap扫描工具那种用法,在执行程序的时候要加入参数来调用,如图所示:

运用的模块

sys(用来接收追加的参数)、socket(用来判断端口是否开放)、re(使用正则来提取端口列表)

最终代码

import socket
import sys
import report_list = [22, 80, 3389, 21, 3306, 1521, 1433]  # 常用端口def open_test(ip, port):# 用socket连接探测端口是否开放s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:s.connect((ip, port))return Trueexcept:return Falsedef scan_port(ip):# 调用上面的方法来返回是否开放if len(port_list) > 2:for i in port_list:if open_test(ip, int(i)):print('%s host %s is open' % (ip, i))else:print('%s host %s is close' % (ip, i))else:if open_test(ip, port_list):print('%s host %s is open' % (ip, port_list))else:print('%s host %s is close' % (ip, port_list))try:# 捕获异常,CTRL+C 时打印  程序终止  而不是报错if len(sys.argv) == 1:# 打印使用帮助print('''This program prints files to the standard output.Any number of files can be specified.Options include: python scanport.py     ip       portspython scanport.py 127.0.0.1 扫描默认端口python scanport.py 127.0.0.1 22,80,21,23...   python scanport.py 127.0.0.1 80-89   python scanport.py 127.0.0.1 21,23,80-89   python scanport.py 127.0.0.1 21,23,80-89,135   python scanport.py 127.0.0.1 80-89,135   python scanport.py 127.0.0.1 all    ''')elif len(sys.argv) == 2:# 扫描默认端口scan_port(sys.argv[1])elif len(sys.argv) == 3:if ',' in sys.argv[2]:if '-' in sys.argv[2]:# 如果同时包含,和-  用以下方法筛选出端口port_list = sys.argv[2].split(',')# print(port_list)length = len(port_list)for i in range(0, length):if '-' in port_list[i]:p = re.findall('\\d\\d', port_list[i])  # 使用正则将开始和末尾的元素拿出来# print(p)port_list.remove(port_list[i])# print(port_list)for j in range(int(p[0]), int(p[1])+1):port_list.append(str(j))  # 转换成字符串加入进列表中# print(port_list)scan_port(sys.argv[1])else:# 第二种方式port_list = sys.argv[2].split(',')scan_port(sys.argv[1])elif '-' in sys.argv[2]:# 第三种方式temp = sys.argv[2].split('-')port_list = range(int(temp[0]), int(temp[1])+1)scan_port(sys.argv[1])elif sys.argv[2] == 'all':# 第四种方式port_list = range(1, 65535)scan_port(sys.argv[1])else:port_list = sys.argv[2]scan_port(sys.argv[1])
except KeyboardInterrupt:print('Program end!')

结果展示

扫描默认端口:

扫描自定义端口:

扫描固定范围端口:

也可以混合一起使用:



扫描所有端口(1-65535):

这样简单的端口扫描程序就写好了,欢迎各位师傅们一起交流~

使用Python编写简单的端口扫描程序相关推荐

  1. python调用扫描仪_使用Python编写简单的端口扫描器的实例分享

    单线程实现单线程实现道理比较简单,这里尝试Soket连接3389,连接成功说明端口开放,否则说明没有开远程服务.随便修改了一下就ok了,代码如下,最终得到自己的IP地址. #!/usr/bin/env ...

  2. linux编写一个简单的端口扫描程序,小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2)...

    当前位置:我的异常网» Linux/Unix » 小弟我在linux下写了个简单的多线程端口扫描程序, 小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2) www. ...

  3. python写端口扫描器_使用Python编写简单的端口扫描器的实例分享

    #!/usr/bin/env python import socket if __name__=='__main__': port=3389 s=socket.socket() for cnt in ...

  4. 简单python代码讲解-使用Python编写简单的画图板程序的示例教程

    从这次开始,我会由简单到困难(其实也不会困难到哪里去)讲几个例程,每一个例程都是我自己写(或者修改,那样的话我会提供原始出处)的,都具有一定的操作性和娱乐性.例程中汇尽量覆盖到以前所讲的pygame中 ...

  5. Python编写简单的剪刀石头布小程序

    一.程序要求 (1)提示用户选择石头剪刀布 (2)计算机随机选择石头剪刀布 (3)判断用户输赢 (4)打印结果 二.代码实现 import random# 电脑人随机出拳 computer = ran ...

  6. TCP/IP网络程序编程——端口扫描程序(TCP)

    端口扫描介绍 端口扫描可以收集目的主机的提供服务端口的信息,可以对于目的主机的信息进行收集. 端口扫描的程序每次会向目的主机特定端口发送一条请求,如果请求得到回应则可以判断是否本端口在对外开放,通过这 ...

  7. python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  8. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  9. python识别ppt文件格式 ——(专栏:基于python编写简单office阅卷程序③)

    ● 研二在读学生,非工科非计算机专业,故代码简陋初级勿喷,本文仅为记录和快乐分享. ○ 感谢肯定,感谢点赞收藏分享,转载请注明本页出处即可. ____Ⓙ即刻@王昭没有君 本文仅为笔者摸索总结-欢迎订正 ...

  10. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

最新文章

  1. 复习计算机网络day2
  2. QIIME 2用户文档. 13训练特征分类器Training feature classifiers(2019.7)
  3. 当了十年 IT 程序员,我转型做自动驾驶开发的这五年”_《新程序员》编辑部的博客-CSDN博客
  4. 机器学习博士自曝:实验室「阉割」我的创造力,劝你别读
  5. 最简单的基于FFmpeg的AVDevice例子(屏幕录制)
  6. 成功,要“借力”,不要“尽力”(深刻!)
  7. Windows7+VS2012下OpenGL 4的环境配置
  8. python中级水平_python 初级/中级/高级/核心
  9. Keba常用硬件模块
  10. python挖矿脚本_利用公共WiFi挖矿的Python脚本(注:仅作研究使用)
  11. 自己做的小游戏希望大家能喜欢
  12. oracle 简版客户端instantclient使用 oledb ODAC组件使用
  13. 工具推荐——Snipaste
  14. 51驱动DS1302制作电子时钟1602显示
  15. 【涂鸦物联网足迹】涂鸦云平台接口列表—万能红外遥控器
  16. jquery中e.target是什么意思
  17. lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾
  18. IDea 工具debug模式详细说明
  19. 订单中心探索业务系统数据预置助力快交付之路
  20. 《LaneAF:Robust Multi-Lane Detection with Affinity Fields》论文笔记

热门文章

  1. Git和Gitlab协同工作
  2. 关于大学生寝室点外卖的调研报告
  3. 以XSUB、XPUB为例,浅谈ZeroMQ的传输桥接(转发代理)
  4. 计算机里电子 邮件格式,邮箱格式怎么写?
  5. 瞅瞅Levels.fyi发布的2020年度程序员收入报告
  6. 带有Powershell的XSLT
  7. ps软件与计算机不兼容怎么办,ps版本不兼容怎么办,ps怎么解决版本兼容问题
  8. mysql临时表删除_MySQL如何创建和删除临时表
  9. Gatekeeper:首个开源的DDoS防护系统
  10. android怎么安装CA证书及代理抓包