Python利用socket模块开发简单的端口扫描工具的实现


Posted in Python onJanuary 27, 2021

一、socket

1.简介

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

socket的工作流程

  • socket 采用C/S 模式,分为服务端和客户端
  • 服务端数据处理流程
    • 创建socket -> 绑定到地址和端口 -> 等待连接 -> 开始通信-> 关闭连接
  • 客户端数据处理流程
  • 创建socket -> 等待连接 -> 开始通信-> 关闭连接
  • 客户端没有绑定地址和端口,是由于客户端进程采用的是随机端口,当客户端要去连接目标时,会由系统自定分配一个端口号和自身ip地址去组合

2.利用方法

函数 描述
s.settimeout(timeout) 设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect())
s.connect() 主动初始化TCP服务器连接,。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。

二、代码

1.源代码

#!/user/bin/
# -*- coding:UTF-8 -*-
# Author:Master_sir
# Version:python2.7

import socket,sys

dk = []
for i in range(0,65536):
  dk.append(i)
ports = dk
def IsOpen(ip,port):
  try:
    s = socket.socket()
    s.settimeout(1)
    s.connect((ip,port))
    return True
  except:
    return False
  pass
def PortScan(ip):
  for p in ports:
    if IsOpen(ip,p):
      sys.stderr.write('%s:%s is open\n' % (ip,p))
      
PortScan('xxx.xxx.xxx.xxx')
#要扫描的ip

2.执行实例

Python利用socket模块开发简单的端口扫描工具的实现

到此这篇关于Python利用socket模块开发简单的端口扫描工具的实现的文章就介绍到这了,更多相关Python socket端口扫描工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
Python multiprocessing多进程原理与应用示例
Feb 28 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
详解Python 函数参数的拆解
Sep 02 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
Python中的嵌套循环详情
Mar 23 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 #Python
python利用appium实现手机APP自动化的示例
Jan 26 #Python
python 基于opencv去除图片阴影
Jan 26 #Python
python中用ggplot绘制画图实例讲解
Jan 26 #Python
python中altair可视化库实例用法
Jan 26 #Python
用Python制作音乐海报
Jan 26 #Python
python中pyqtgraph知识点总结
Jan 26 #Python
You might like
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
五个PHP程序员工具
2008/05/26 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
MooTools 1.2介绍
2009/09/14 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
工作表现自我评价
2014/02/08 职场文书
毕业寄语大全
2014/04/09 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书