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使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
python 统计代码行数简单实例
May 04 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
Python 判断奇数偶数的方法
Dec 20 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
使用python实现回文数的四种方法小结
Nov 24 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
django rest framework使用django-filter用法
Jul 15 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
改造一台复古桌面收音机
2021/03/02 无线电
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python文件编写好后如何实践
2020/07/07 Python
Django xadmin安装及使用详解
2020/10/26 Python
python asyncio 协程库的使用
2021/01/21 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
《临死前的严监生》教学反思
2014/02/13 职场文书
单位绩效考核方案
2014/05/11 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
考试保密承诺书
2014/08/30 职场文书
开学典礼校长致辞
2015/07/29 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python