python3检测TCP端口状态

之前有用php的socket来检测tcp端口监听情况,效果不理想,也可以说完全没啥用吧,今天在网上找了下python3检测TCP端口的代码,还比较好用,记录下以后备用,已经本地测试过了,代码中的细节我会进行说明

#!/usr/bin/python
#coding:utf-8

import socket

def checkTcp(ip, port)
try:
    s = socket.socket(socket.AF.INET, socket.SOCK_STREAM)
    status = s.connect_ex((ip, port))
    #设置超时时间
    s.settimeout(3)
    if status == 0:
        print('port opening !')
    else:
        print('port closed !')
except Exception, e:
    print('port closed !')
    print('error details :%s' % e)

#用法    
checkTcp("sulao.cn","80")

因为不知道会出什么样的异常错误,整段代码用了异常处理try来捕捉异常

其中s.settimeout来设置一个超时时间,要不socket会一直尝试连接远程IP和端口,直到超时,这个时间比较长

另外connect_ex函数只能传入一个参数,所以这个函数里面还有一个小括号,不要漏掉了

最后使用except Exception来捕捉错误详情,下面可以打印出来进行参考

另外还有一点要注意,connect_ex方法返回0是正常,这点正和我们以前的返回值相反,不要搞错了。。。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://sulao.cn/post/554.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。