0
我想检查使用Python 3.6如果远程DNS服务器正在侦听端口53 UDP。Python检查udp端口打开
这是我的尝试:
def check_port(host, port):
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(1)
try:
result = s.connect_ex((host, port))
except socket.gaierror:
s.close()
return 1
s.close()
return result # 0 == Port is open
,但我得到0即使端口是关闭所有的时间。 使用SOCK_STREAM尝试TCP就像一个魅力。
我也试过:
def check_port_udp(host, port):
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(1)
try:
s.sendto('ping'.encode(), (host, port))
s.recvfrom(1024)
except socket.timeout:
s.close()
print(1)
return 1
s.close()
print(0)
return 0 # 0 == Port is open
,但我得到1都那么即使该端口是开放的
你有什么试过,有哪些错误? – klutt
您尝试过哪些选项? – Max
你可能想阅读这个,为什么UDP扫描可能完全失败:https://community.qualys.com/docs/DOC-1185 – Max