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 14 Python
python中abs&map&reduce简介
Feb 20 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python如何删除文件中重复的字段
Jul 16 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
在keras中获取某一层上的feature map实例
Jan 24 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
django日志默认打印request请求信息的方法示例
May 17 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
Pycharm Git 设置方法
Sep 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP实现微信提现功能
2018/09/30 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
使用yeoman构建angular应用的方法
2017/08/14 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
Python内置函数及功能简介汇总
2020/10/13 Python
Python jieba库分词模式实例用法
2021/01/13 Python
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
工商技校毕业生自荐信
2013/11/15 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
公司年终奖分配方案
2014/06/16 职场文书
奖励通知
2015/04/22 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript