Python实现的tcp端口检测操作示例


Posted in Python onJuly 24, 2018

本文实例讲述了Python实现的tcp端口检测操作。分享给大家供大家参考,具体如下:

# coding=utf-8
import sys
import socket
import re
def check_server(address, port):
  s = socket.socket()
  print 'Attempting to connect to %s on port %s' % (address, port)
  try:
    s.connect((address, port))
    print 'Connected to %s on port %s' % (address, port)
    return True
  except socket.error as e:
    print 'Connection to %s on port %s failed: %s' % (address, port, e)
    return False
if __name__ == '__main__':
  from argparse import ArgumentParser
  parser = ArgumentParser(description=u'TCP端口检测')
  parser.add_argument(
    '-a',
    '--address',
    dest='address',
    default='localhost',
    help='address for the server')
  parser.add_argument(
    '-p',
    '--port',
    dest="port",
    default=80,
    type=int,
    help='port for the server')
  args = parser.parse_args()
  check = check_server(args.address, args.port)
  print 'check_server returned %s' % check
  sys.exit(not check)

测试结果:

[hupeng@hupeng-vm Python]$python check_server.py && echo "SUCCESS"
Attempting to connect to localhost on port 80
Connected to localhost on port 80
check_server returned True
SUCCESS
[hupeng@hupeng-vm Python]$python check_server.py -p 81 && echo "Failure"
Attempting to connect to localhost on port 81
Connection to localhost on port 81 failed: [Errno 111] Connection refused
check_server returned False
[hupeng@hupeng-vm Python]$python check_server.py -p 81 || echo "Failure"
Attempting to connect to localhost on port 81
Connection to localhost on port 81 failed: [Errno 111] Connection refused
check_server returned False
Failure

附:

shell中&&||的使用方法

命令的返回结果:真(返回0),假(返回非0)

command1  && command2: command1返回真时,command2才会被执行

command1  || command2:command1返回真时,command2就不会被执行

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
利用python实现数据分析
Jan 11 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
Python使用paramiko操作linux的方法讲解
Feb 25 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
Python 爬虫的原理
Jul 30 Python
python正则表达式之对号入座篇
Jul 24 #Python
Python 字符串与二进制串的相互转换示例
Jul 23 #Python
Python二进制串转换为通用字符串的方法
Jul 23 #Python
Python基于多线程实现ping扫描功能示例
Jul 23 #Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 #Python
python定向爬虫校园论坛帖子信息
Jul 23 #Python
python实现图片批量压缩程序
Jul 23 #Python
You might like
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
Python Web框架Tornado运行和部署
2020/10/19 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
详解Python time库的使用
2019/10/10 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
解决python replace函数替换无效问题
2020/01/18 Python
详解Python中的分支和循环结构
2020/02/11 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
匡威德国官网:Converse德国
2019/01/26 全球购物
学生手册评语
2014/05/05 职场文书
医院见习报告范文
2014/11/03 职场文书
2014年纪检工作总结
2014/11/12 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
感谢信模板大全
2015/01/23 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby