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只用40行代码编写的计算器实例
May 10 Python
python笔记:mysql、redis操作方法
Jun 28 Python
python中字符串的操作方法大全
Jun 03 Python
10个Python小技巧你值得拥有
Sep 29 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python----数据预处理代码实例
Mar 20 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
pytorch forward两个参数实例
Jan 17 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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&mysql(六)
2006/10/09 PHP
php 清除网页病毒的方法
2008/12/05 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
PHP微信API接口类
2016/08/22 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP中常用的魔术方法
2017/04/28 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
Python中map和列表推导效率比较实例分析
2015/06/17 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python 中如何获取列表的索引
2019/07/02 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
Python range与enumerate函数区别解析
2020/02/28 Python
python对XML文件的操作实现代码
2020/03/27 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
本科生的职业生涯规划范文
2014/01/09 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
Go语言编译原理之变量捕获
2022/08/05 Golang