基于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

最新文章

  1. MySql SELECT INTO 记录为空的问题
  2. easyui 筛选数据及仅允许选择数据
  3. ROS BY EXAMPLE 1 -- 环境设置与安装
  4. 尝试u3d中将代码与编辑器分离
  5. Javascript高级程序设计——客户端检测
  6. php常用方法总结
  7. 在updatepanel使用colorbox无效
  8. 模块已加载,但对dllregisterServer的调用失败
  9. 解决关于打开plist文件乱码问题,plist转换为xml文件的txt文件!
  10. rsync常用命令及格式
  11. 父 shell,子 shell ,export 与 变量传递
  12. GWT中实现跳转及不同entrypoint怎么互相访问
  13. Android的minSdkVersion,targetSdkVersion,maxSdkVersion
  14. navicat查询sqlserver数据库编码
  15. Node.js timer的优化故事
  16. freemarker 集成 sitemesh 装饰html页面 shiro 标签
  17. python学习日记(继承和多态)
  18. [硬件]超能课堂(181):我们为什么需要4+8pin CPU供电接口?
  19. CSS| font property
  20. Rest架构以及什么是Restful

热门文章

  1. grant localhost and % for mysql
  2. benchmarks (主要用于分布式文件系统性能测试)
  3. Centos7更新阿里云的yum源
  4. 数组中的第K个最大元素
  5. CSS中层叠和继承的概念。
  6. LeetCode解题笔记 - 20. Valid Parentheses
  7. 基于Django的Rest Framework框架的解析器
  8. TensorFlow2.0教程-使用keras训练模型
  9. autojump--懒人利器
  10. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 8-1