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合并两个字典的常用方法与效率比较
Jun 17 Python
Python中的getopt函数使用详解
Jul 28 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
详解python脚本自动生成需要文件实例代码
Feb 04 Python
解决Python一行输出不显示的问题
Dec 03 Python
python实现名片管理系统项目
Apr 26 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
Python中相见恨晚的技巧
Apr 13 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
PHP 转义使用详解
2013/07/15 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
详解在Python中处理异常的教程
2015/05/24 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
班队活动设计方案
2014/01/30 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
阳光体育运动标语口号
2015/12/26 职场文书