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的urllib模块显示下载进度示例
Jan 17 Python
python回调函数的使用方法
Jan 23 Python
跟老齐学Python之通过Python连接数据库
Oct 28 Python
python的turtle库使用详解
May 10 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python Kmeans算法原理深入解析
Aug 23 Python
python return逻辑判断表达式实现解析
Dec 02 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
浅谈Python __init__.py的作用
Oct 28 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
python基础之类方法和静态方法
Oct 24 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
WHOIS类的修改版
2006/10/09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php分页代码学习示例分享
2014/02/20 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
js实现select下拉框选择
2020/01/11 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
python计数排序和基数排序算法实例
2014/04/25 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Python如何调用JS文件中的函数
2019/08/16 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
企业指导教师评语
2014/04/28 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
安全保证书格式
2015/02/28 职场文书
python 下载文件的几种方式分享
2021/04/07 Python