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私有属性和方法实例分析
Jan 15 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
python3 pygame实现接小球游戏
May 14 Python
python pygame实现球球大作战
Nov 25 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
学习Python爬虫的几点建议
Aug 05 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
Python 多线程之threading 模块的使用
Apr 14 Python
python编程实现清理微信重复缓存文件
Nov 01 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 中文处理技巧
2010/04/25 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
django 发送手机验证码的示例代码
2018/04/25 Python
python中reader的next用法
2018/07/24 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python版名片管理系统
2018/11/30 Python
Python简单基础小程序的实例代码
2019/04/28 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python数据分析:关键字提取方式
2020/02/24 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
新加坡交友网站:be2新加坡
2019/04/10 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
存储过程和sql语句的优缺点
2014/07/02 面试题
如何删除一个表里面的重复行
2013/07/13 面试题
广告词串烧
2014/03/19 职场文书
青年文明号创建承诺
2014/03/31 职场文书
公务员个人年终总结
2015/02/12 职场文书
离婚案件答辩状
2015/05/22 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
总经理聘用协议书
2015/09/21 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL