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中for语句简单遍历数据的方法
May 07 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
Python 下载及安装详细步骤
Nov 04 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python绘制封闭多边形教程
Feb 18 Python
解决keras backend 越跑越慢问题
Jun 18 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
如何通过python计算圆周率PI
Nov 11 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
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
PHP微信分享开发详解
2017/01/14 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
zooplus波兰:在线宠物店
2019/07/21 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
Ref与out有什么不同
2012/11/24 面试题
婚庆公司的创业计划书
2014/01/22 职场文书
简历自我评价模版
2014/01/31 职场文书
个人培训自我鉴定
2014/03/28 职场文书
求职信内容怎么写
2014/05/26 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
安全守法证明
2015/06/23 职场文书
《失物招领》教学反思
2016/02/20 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书