Mal*_*rus 6 python sockets ports
在从bash翻译一些脚本时,我遇到了netstat -an的许多用法,以查找我们的某个服务是否在监听.虽然我知道我可以使用subprocess.call或其他甚至popen我宁愿使用pythonic解决方案,所以我没有利用我们正在运行的unix环境.
从我读到的插座模块应该有一些东西,但我还没有看到任何检查侦听端口.可能是我不理解一个简单的技巧,但到目前为止我知道如何连接到套接字,并写一些让我知道该连接失败的东西.但不一定我找到了专门检查端口的东西,看它是否正在收听.
有任何想法吗?
sbe*_*rry 10
怎么样试图连接......
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex(('127.0.0.1', 3306))
if result == 0:
print('socket is open')
s.close()
Run Code Online (Sandbox Code Playgroud)
我知道这个问题很旧,但是我是为初学者写的。如果要标识系统上的侦听端口,可以使用以下代码。
from socket import *
Port = 0 #First port.
while Port <= 65535: #Port 65535 is last port you can access.
try:
try:
Socket = socket(AF_INET, SOCK_STREAM, 0) #Create a socket.
except:
print("Error: Can't open socket!\n")
break #If can't open socket, exit the loop.
Socket.connect(("127.0.0.1", Port)) #Try connect the port. If port is not listening, throws ConnectionRefusedError.
Connected = True
except ConnectionRefusedError:
Connected = False
finally:
if(Connected and Port != Socket.getsockname()[1]): #If connected,
print("{}:{} Open \n".format("127.0.0.1", Port)) #print port.
Port = Port + 1 #Increase port.
Socket.close() #Close socket.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14653 次 |
| 最近记录: |