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