python 检测主机端口状况

本文介绍了如何使用Python进行网络编程,通过创建一个脚本来发送socket请求,检查Linux主机的端口状态。程序利用optparse模块处理命令行参数,方便他人使用,并可以集成到crontab中实现定期监控。
摘要由CSDN通过智能技术生成

今天看到python 的网络编程,顺便写个小程序实践一下。

脚本功能:

        运用python 程序,向服务器发送socket 请求,根据请求状态实现对linux 主机的监控。

程序代码:

#!/usr/bin/python2.6


import socket
import re
import sys
import MySQLdb
def check_server(address,port):
    s = socket.socket()
    try:
        s.connect((address,port))
        print  "connected to %s on port %s " % (address,port)
        return True
    except socket.error:
        print  "connected  failed to %s on  port %s " % (address,port)
        return False
#check_server(sys.argv[1],int(sys.argv[2]))
#check_server(ip,port)
if __name__ == '__main__':
    from optparse import OptionParser
    parser = OptionParser()
    parser.add_option("-a","--address",dest = "address", default = 'localhost',help = 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以给你一个参考的代码: ``` import socket def check_port(host, port): s = socket.socket() try: s.connect((host, port)) return True except socket.error: return False finally: s.close() if __name__ == '__main__': host = 'localhost' port = 8080 if check_port(host, port): print('端口 %d 已开启' % port) else: print('端口 %d 未开启' % port) ``` 在这段代码中,我们用到了 Python 中的 `socket` 模块,使用它可以进行网络通信。我们通过调用 `socket.connect` 函数来尝试连接指定的主机端口,如果连接成功,则说明端口已开启,否则说明端口未开启。 希望这段代码能对你有所帮助! ### 回答2: Python可以使用socket模块来编写一个简单的脚本来检测端口的开启情况。下面是一个示例代码: ```python import socket def check_port(host, port): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(2) # 设置socket超时时间 result = sock.connect_ex((host, port)) if result == 0: print("端口开放") else: print("端口关闭") sock.close() except socket.error: print("连接错误") if __name__ == '__main__': host = 'localhost' # 检测主机名或IP地址 port = 80 # 检测端口号 check_port(host, port) ``` 在上面的代码中,我们使用了socket模块来创建一个TCP连接,并使用`connect_ex`方法来尝试连接指定的主机端口。如果返回值为0,则说明端口开放;如果是其他值,则说明端口关闭。最后我们关闭了socket连接。 你可以通过修改`host`和`port`变量来指定需要检测主机端口号。运行脚本后,你将看到结果输出:"端口开放" 或 "端口关闭"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值