一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python檢測遠程udp端口是否打開的方法

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

2019-12-02 16:11chongq Python

這篇文章主要介紹了python檢測遠程udp端口是否打開的方法,涉及Python操作socket實現檢測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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 秋霞宅宅236理论片 秋霞一级黄色片 | 乌克兰精品摘花处破 | 免费港剧在线观看港剧 | 日韩美一区二区三区 | 国产精品青青青高清在线密亚 | 日本在线小视频 | 国产免费小视频 | 成品人视频w免费观看w | 国产亚洲精品高清在线 | 国产123区在线视频观看 | 日本十大顶级绝伦推理片 | 数学老师扒开腿让我爽快 | 天天射夜夜爽 | 波多野结衣中文字幕乱七八糟 | 国产a一级 | 日韩成人免费 | 夫妇野外交换激情 | а天堂中文最新版在线官网视频 | 亚色九九九全国免费视频 | 精品视频手机在线观看免费 | 翁息肉小说老扒 | 高清男的插曲女的 欢迎你老狼 | 香蕉免费一区二区三区在线观看 | 欧美一区二区三区综合色视频 | 污丝瓜视频| 日韩欧美中文字幕一区二区三区 | 消息称老熟妇乱视频一区二区 | 国产精品 视频一区 二区三区 | 亚洲欧美在线免费观看 | 国产日韩一区二区 | 日韩成本大片35分钟免费播放 | 久久国产精品福利影集 | 幻女free性zozo交体内谢 | 免费看欧美一级特黄a大片一 | 亚洲2017天堂色无码 | 男女乱淫真视频播放网站 | 国产激情一区二区三区四区 | 99热精品久久 | caonila国产在线观看 | 福利视频久久 | 日本高清中文字幕一区二区三区 |