基于python检测端口是否在使用

原理:创建一个socket服务,连接对应的 ip:port ,如果能够连接,说明端口被占用;若端口可用,则不可连接。

#!/usr/bin/evn python
#-*-coding:utf-8 -*- import sys, socket
from argparse import ArgumentParser
from optparse import OptionParser class backupTools:
def check_port(self, ip, port=80):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((ip, port))
s.shutdown(2)
print('%s:%d is used' % (ip, port))
return True
except socket.error as e:
print('%s:%d is unused' % (ip, port))
return False if __name__ == '__main__':
args = sys.argv
port = sys.argv[1]
backup = backupTools() # parser=OptionParser()
# parser.add_option('-a', '--addr', dest='addr', help='')
# parser.add_option('-p', '--port', dest='port', default=80, type="int", help='')
# (options, args) = parser.parse_args()
# print "options===>", options.addr, args parser = ArgumentParser(description="TCP端口检测")
parser.add_argument('a1') # 输入参数时候不用字典传参。
parser.add_argument('-o', '--other', dest='other') # 输入参数时候需要字典传参,python test.py 33 -o56 127.0.0.1 3306
parser.add_argument('-a', '--addr', dest='addr', default='localhost', help='address for the server')
parser.add_argument('-p', '--port', dest="port", default=80, type=int, choices=[80,443,3306], help='port for the server')
# args = parser.parse_args()
args = parser.parse_known_args()[0]
print "args===>", args, args.port result= backup.check_port(args.addr, int(args.port))
sys.exit(0)

https://blog.csdn.net/weixin_33888907/article/details/93054754  git

Python—端口检测(socket)的更多相关文章

  1. Python脚本写端口扫描器(socket,python-nmap)

    目录 Socket模块编写 扫描给定主机是否开放了指定的端口 python-nmap模块编写 扫描给定ip或给定网段内指定端口是否开放 一个用python写的简单的端口扫描器,python环境为 3. ...

  2. tcp端口检测

    # coding=utf-8 import sys import socket import re def check_server(address, port): s = socket.socket ...

  3. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  4. python网络编程-socket

    python提供了两个socket模块 Socket,它提供了标准的BSD Sockets API SocketServer,它提供了服务器中心类,可以简化网络服务器的开发 下面先说socket模块 ...

  5. 第10章 同步设备I/O和异步设备I/O(4)_利用I/O完成端口实现Socket通信

    I/O完成端口原理见上一篇(可点击这里) 10.5.4.4 利用I/O完成端口实现Socket通信 (1)Accept和AcceptEx流程的比较 ①采用accept方式的流程示意图如下(普通的阻塞函 ...

  6. python模块之socket

    43.python模块之socket:       Python在网络通讯方面功能强大,学习一下Socket通讯的基本方式 UDP通讯: Server: import socket port=8081 ...

  7. python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题

    今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...

  8. Python 基础之socket编程(二)

    Python 基础之socket编程(二) 昨天只是对socket编程做了简单的介绍,只是把socket通信的框架搭建起来,要对其中的功能进行进一步的扩充,就来看看今天的料哈! 一.基于tcp的套接字 ...

  9. python端口扫描器

    吃了个火鸡面后感觉到了怀疑人生!!!!!!!!!妈耶,在也不吃了.思路都给辣没了!!! python端口扫描器代码如下: #-*-coding:utf-8 from socket import * i ...

随机推荐

  1. Oracle数据库创建只读用户

    创建一个只读用户user2,只能查询管理员用户user1下的表,不能增删改. 操作环境:PL/SQL Developer 1.用管理员用户user1登录,创建用户user2.并授权 --创建用户use ...

  2. 教你两招用纯CSS写Tab切换

    说到Tab切换,你可能首先想到的就是使用jQuery,短短几行代码就可以轻松搞定一个Tab切换. 而今天所要分享的,是使用 0 行JS代码来实现Tab切换! 具体效果如下:   Tab切换 方法一:模 ...

  3. pip 查看软件包 可用版本并安装; pip 查看 numpy 可用版本并安装

    最近需要安装 numpy 的旧版本,发现不知道如何查看可以安装旧版本,解决方法在此进行记录: 然后找到你对应的版本进行安装就可以了: 保持更新,更多精彩内容,请关注 cnblogs.com/xuyao ...

  4. HTML Rendering Error

    刚下载的markdown弹窗提示html渲染错误 去官网   http://markdownpad.com/faq.html#livepreview-directx  页面搜索 This view h ...

  5. SSM 实现登录注册功能

    1.上一篇SSM框架搭建好了之后就要开始写功能了,现在来写一个简单的登录注册功能 这几个包是自己手动创建的,然后往里面写代码 2.代码详情 package com.maike.controller; ...

  6. linux五天光速入门

    第一章: 01 Linux的安装及相关配置  → B站视频链接(p1-p21) 02 UNIX和Linux操作系统概述    → B站视频链接 第二章: 01 Linux命令及获取帮助   → B站视 ...

  7. php strlen和mb_strlen

    结果: 结论:如果没有中文,尽量使用strlen

  8. STM32 F4xx Fault 异常错误定位指南

    STM32 F407 采用 Cortex-M4 的内核,该内核的 Fault 异常可以捕获非法的内存访问和非法的编程行为.Fault异常能够检测到以下几类非法行为: 总线 Fault: 在取址.数据读 ...

  9. Java数组拷贝的五种方法

    在Java中有多种方法可以拷贝一个数组,到另外一个数组. 1.循环拷贝 在循环拷贝方法中,只需要利用i,移动指针即可复制所有数组到arrayB中. for(int i=0;i<arrayA.le ...

  10. 使用logging模块进行封装,让bug无处遁寻

    import logging from scripts.handle_config import conf from scripts.constants import LOGS_DIR class H ...