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抓取京东商城手机列表url实例代码
Dec 18 Python
基于Python实现的微信好友数据分析
Feb 26 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
如何给Python代码进行加密
Jan 10 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
python中pow函数用法及功能说明
Dec 04 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
smtp邮件发送一例
2006/10/09 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
phpize的深入理解
2013/06/03 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
Vue scoped及deep使用方法解析
2020/08/01 Javascript
python进阶教程之异常处理
2014/08/30 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
django框架cookie和session用法实例详解
2019/12/10 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
保洁主管岗位职责
2013/11/20 职场文书
个人先进材料范文
2014/12/30 职场文书
高三英语复习计划
2015/01/19 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
初中英语教学反思范文
2016/02/15 职场文书