日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python监听udp端口_python检测远程udp端口是否打开

發布時間:2025/4/5 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python监听udp端口_python检测远程udp端口是否打开 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python檢測遠程udp端口是否打開

import socket

import threading

import time

import struct

import Queue

queue = Queue.Queue()

def udp_sender(ip,port):

try:

ADDR = (ip,port)

sock_udp = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

sock_udp.sendto("abcd...",ADDR)

sock_udp.close()

except:

pass

def icmp_receiver(ip,port):

icmp = socket.getprotobyname("icmp")

try:

sock_icmp = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp)

except socket.error, (errno, msg):

if errno == 1:

# Operation not permitted

msg = msg + (

" - Note that ICMP messages can only be sent from processes"

" running as root."

)

raise socket.error(msg)

raise # raise the original error

sock_icmp.settimeout(3)

try:

recPacket,addr = sock_icmp.recvfrom(64)

except:

queue.put(True)

return

icmpHeader = recPacket[20:28]

icmpPort = int(recPacket.encode('hex')[100:104],16)

head_type, code, checksum, packetID, sequence = struct.unpack(

"bbHHh", icmpHeader

)

sock_icmp.close()

if code == 3 and icmpPort == port and addr[0] == ip:

queue.put(False)

return

def checker_udp(ip,port):

thread_udp = threading.Thread(target=udp_sender,args=(ip,port))

thread_icmp = threading.Thread(target=icmp_receiver,args=(ip,port))

thread_udp.daemon= True

thread_icmp.daemon = True

thread_icmp.start()

time.sleep(0.1)

thread_udp.start()

thread_icmp.join()

thread_udp.join()

return queue.get(False)

if __name__ == '__main__':

import sys

print checker_udp(sys.argv[1],int(sys.argv[2]))

總結

以上是生活随笔為你收集整理的python监听udp端口_python检测远程udp端口是否打开的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。