python实现指定ip端口扫描方式


Posted in Python onDecember 17, 2019

在Linux中判断一台主机是否可达,可以使用ping命令,而判断端口是否打开,可以使用telnet命令,但是telnet命令没有超时时间的参数,使用起来不是很方便,那么可以利用Python来完成一个端口扫描的功能

socket实现端口扫描

#!/usr/bin/env python

import socket

def get_ip_status(ip,port):
  server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  try:
    server.connect((ip,port))
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

telnetlib实现端口扫描

import telnetlib

def get_ip_status(ip,port):
  server = telnetlib.Telnet()   # 创建一个Telnet对象
  try:
    server.open(ip,port)     # 利用Telnet对象的open方法进行tcp链接
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

多线程实现高效扫描

#!/usr/bin/env python

import telnetlib
import threading

def get_ip_status(ip,port):
  server = telnetlib.Telnet()
  try:
    server.open(ip,port)
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  threads = []
  for port in range(20,100):
    t = threading.Thread(target=get_ip_status,args=(host,port))
    t.start()
    threads.append(t)

  for t in threads:
    t.join()

以上这篇python实现指定ip端口扫描方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python和MD5实现网站挂马检测程序
Mar 13 Python
Python的另外几种语言实现
Jan 29 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python实现简单淘宝秒杀功能
May 03 Python
Python socket实现的简单通信功能示例
Aug 21 Python
Django处理多用户类型的方法介绍
May 18 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
python解包概念及实例
Feb 17 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 #Python
python wxpython 实现界面跳转功能
Dec 17 #Python
python飞机大战pygame游戏背景设计详解
Dec 17 #Python
python实现名片管理器的示例代码
Dec 17 #Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 #Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 #Python
基于Django实现日志记录报错信息
Dec 17 #Python
You might like
一段php加密解密的代码
2007/07/16 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
python实现堆排序的实例讲解
2020/02/21 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
求职推荐信
2013/10/28 职场文书
珍惜资源的建议书
2014/08/26 职场文书
期末考试复习计划
2015/01/19 职场文书
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers