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的即时标记项目练习笔记
Sep 18 Python
python根据出生日期返回年龄的方法
Mar 26 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
python实现DES加密解密方法实例详解
Jun 30 Python
python实现文件快照加密保护的方法
Jun 30 Python
Python程序中设置HTTP代理
Nov 06 Python
python去掉空白行的多种实现代码
Mar 19 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
Python递归函数特点及原理解析
Mar 04 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
python自动化八大定位元素讲解
Jul 09 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
德劲1103的维修打理经验
2021/03/02 无线电
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
php命名空间学习详解
2014/02/27 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
解析vue中的$mount
2017/12/21 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
python简单实现获取当前时间
2016/08/27 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
学生党员思想汇报
2013/12/28 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
2014年行政部工作总结
2014/11/19 职场文书
运输公司工作总结
2015/08/11 职场文书
入党申请书怎么写?
2019/06/11 职场文书
编写python程序的90条建议
2021/04/14 Python
如何使用PyCharm及常用配置详解
2021/06/03 Python