问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用python方法检测UDP端口

发布网友 发布时间:2022-04-22 23:41

我来回答

1个回答

热心网友 时间:2022-04-18 06:34

如何用python方法检测UDP端口,首先要了解什么是UDP端口及作用。个人理解是:UDP端口是含有网络服务必须的源端口和目的端口信息,用以建立和实现网络传输服务。

至于如何用python方法检测UDP端口呢?参考下边这段网友提供的代码吧。

socket、threading、time、Queue这些是要用到的python方法模块。

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端口

socket、threading、time、Queue这些是要用到的python方法模块。import socketimport threadingimport timeimport structimport 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.sendt...

python 网络编程——udp

使用UDP进行通信主要涉及发送与接收消息。通过创建Socket、绑定端口、发送/接收数据,最终关闭Socket这一系列步骤实现消息的交互。收消息时,我们通常使用sendto()函数,编码数据为utf-8格式,确保接收端正确显示。编码方法为字符串.encode('utf-8'),解码则使用.decode('utf-8')。在Windows系统中,发送数...

python设计UDP通信时,recvfrom()中的参数是什么意思

socket.recvfrom(bufsize[, flags])Receive data from the socket. The return value is a pair (bytes, address) where bytes is a bytes object representing the data received and address is the address of the socket sending the data. See the Unix manual page recv(2) for the meaning...

为什么使用Python发送UDP数据,发送的时候使用的却是QUIC协议

1. 因为目标端口是 80 端口。Wireshark 的 QUIC filter 仅仅就是 udp.port == 80 || udp.port == 443 2. 不要相信 Wireshark 的协议分析,因为 dissect 经常会出现偏差。

详解python并发获取snmp信息及性能测试方法

python & snmp用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库。网上有较多的关于两个库的例子。本文重点在于如何并发的获取snmp的数据,即同时获取多台机器的snmp信息。netsnmp先说netsnmp。python的netsnmp,其实是来自于net-snmp包。python通过一个c文件调用net-snmp的接口获取数据...

python怎么建立socket服务端

首先先建立一个python文件,命名为 socket_server1.py2下面是相关的步骤图.3先导入相关的模块.并且定义相关的主机及端口.4完整的socket_server1.py文件.5设置好之后,通过命令提示符测试(进行测试.开始---运行---cmd)6先使用python 运行下刚刚的那个文件. >>python socket_server1.py7客户端直接使用telnet代替测试...

如何用 python 搭建一个邮件服务器

首先是服务器端,我们使用bind()方法来赋予socket以固定的地址和端口,并使用listen()方法来被动的监听该端口。当有客户尝试用connect()方法连接的时候,服务器使用accept()接受连接,从而建立一个连接的socket:socket.socket()创建一个socket对象,并说明socket使用的是IPv4(AF_INET,IP version 4)和TCP协议(SOCK_STREAM...

如何通过Python构造一个DNS查询包

可以尝试以下步骤:ping一个域名,用wireshark抓一个DNS的query,看看各个字段分别是什么值;用python的struct将这些字段按顺序pack成二进制数据;用python的socket将构造好的数据发到DNS服务器UDP的53号端口,本地端口可以自行指定;用python的socket从buffer中读取server返回的数据;用python的struct将二进制...

python保存udp报文到文件

方法是python3读取文件的函数file.read(size),已经自动帮我们做了缓存机制,所以我们可以直接进行读取。

同一个udp端口能不能绑多次

这个端口不能绑定多次。查询博客园信息可知,python的socket的通讯流程服务端在创建socket对象后,绑定ip地址address和端口port,使用bind方法,ipv4地址为一个二元组,需注意的是一个udp端口只能被绑定一次,因此同一个udp端口能不能绑多次。

python检测进程和端口 python编写IP列表扫描端口 python监听udp端口 python批量扫描ip端口 python端口 python端口转发 python端口映射 python端口扫描 python 监听端口
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...但银行贷款没下来,请问我可以用信用卡刷卡两万买东西吗 一直三角形60度对边(直边)长2.3Cm求另一直边? 秦朝御史大夫和西汉时刺史代表中央行使的权力相同的是 [ ] A、监察... 两汉时的刺史与秦朝的什么官职权相近 ( ) A 御史大夫&n... 联想电脑投诉监督电话-不要联想官方电话,我要找能够监督联想电脑的部门... 《绝地求生》背后的科技:是什么力量造就了吃鸡? 和人私信如何删除记录!在百度问问里 ...初三的一位学生,我想问一下,中考音乐特长舞蹈,声乐各加多少分... 初三中考艺考舞蹈生加多少分? lec识别法指的是 javascript 解析json数据的问题 Python socket 如何实现广播单播切换 json s数据能传给异步任务吗 android python 多进程通讯 使用什么好 js怎么获取json数据里重复的值? js中for遍历出了多个json,如何把这些json存到数组? 有3个文件1.txt 2.txt 3.txt 我想利用python多线程同时查看3个文件的... json的简单介绍及基本使用 关于python多线程的一些问题。 暑期社会实践证明 一个for循环的Python脚本程序中如何加入多进程(并发进程)呢,急急急... 本人现急需一份参加社会实践活动的证明 请教一个关于python socket的问题 急!急!急!暑期社会实践证明… python编程中线程结束的问题 中学生社会实践证明有什么格式么~? python3 如何在线程间进行事件通知 实习证明格式是什么? python thread怎么强制结束一个已开启核对进城 关于暑假社会实践证明 为什么在解析json中汉字解析不了 python threads can only be started once DELPHi分布式多层设计,的瘦客户机的理解 c#读取json linux下vyysh命令有什么作用啊?经常见到! json对象获取属性名 python 多线程如何延时 json数据格式,xml数据格式的区别和用法 referenceerror lessonjsons啥意思 新下的EVE 和新注册的账号,怎么不能用! 如何把一串字符串再解析成json javascript解析json问题 javascript解析多维数组生成的json 为什么某些浏览器无法获取JSON? springmvc怎么接受前台传进来的json数据 js将字符串转换成对象和数组 struts2返回json数据问题 为什么某些浏览器用JSON无法传递中文参数? 怎样在官网上查商品真假? 不记得在哪个平台买的物品怎么查购买的商品忘了是从哪个平台买的了怎么查?