How can I know if a certain port is open/closed on linux ubuntu, not a remote system, using python? How can I list these open ports in python?
This question is tagged with
~ Asked on 2013-10-05 09:24:03
You can using the socket module to simply check if a port is open or not.
It would look something like this.
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex(('127.0.0.1',80)) if result == 0: print "Port is open" else: print "Port is not open" sock.close()
~ Answered on 2013-10-05 09:38:24
If you want to use this in a more general context, you should make sure, that the socket that you open also gets closed. So the check should be more like this:
import socket from contextlib import closing def check_socket(host, port): with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock: if sock.connect_ex((host, port)) == 0: print "Port is open" else: print "Port is not open"
~ Answered on 2016-02-12 18:46:41