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流程控制语句
Dec 04 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python中property属性实例解析
Feb 10 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
使用pycharm生成代码模板的实例
May 23 Python
python 定义给定初值或长度的list方法
Jun 23 Python
pycham查看程序执行的时间方法
Nov 29 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python标准库json模块和pickle模块使用详解
Mar 10 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
菜鸟javascript基础资料整理2
2010/12/06 Javascript
javascript 闭包
2011/09/15 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
javascript函数的四种调用模式
2017/01/08 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
python读文件逐行处理的示例代码分享
2013/12/27 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
python 实现有道翻译功能
2021/02/26 Python
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
《果园机器人》教学反思
2014/04/13 职场文书
工作建议书范文
2014/05/13 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
Redis入门基础常用操作命令整理
2022/06/01 Redis