python-UDP协议

该博客展示了如何在Python中使用socketserver模块实现基于UDP协议的并发通信。通过对比TCP和UDP协议的特点,作者提供了扫描目标IP的代码,用于检测目标主机是否在线。代码实现了发送UDP数据包并解析响应,从而判断目标端口是否开放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python-UDP协议

UDP协议:

        python中基于udp协议的客户端与服务端通信简单过程实现

  udp协议的一些特点(与tcp协议的比较)

       利用socketserver模块实现udp传输协议的并发通信

代码:

import optparse
from scapy.all import *
from scapy.layers.inet import IP, TCP


def Scan(ip):
    try:
        dport = random.randint(1, 65535)
        packet = IP(dst=ip) / TCP(dport=80)
        respone = sr1(packet, timeout=1.0, verbose=0)
        if respone:
            if int(respone[IP].proto) == 1:
                time.sleep(0.5)
                print(ip + ' ' + "is up")
            else:
                print(ip + ' ' + "is down")
        else:
            print(ip + ' ' + "is down")
    except:
        pass


def main():
    parser = optparse.OptionParser("Usage: %prog -i <ip address>")
    parser.add_option("-i", '--ip', type="string", dest="targetIP", help="specify the IP address")
    options, args = parser.parse_args()
    if '-' in options.targetIP:
        for i in range(int(options.targetIP.split('-')[0].split('.')[3]), int(options.targetIP.split('-')[1]) + 1):
            Scan(options.targetIP.split('.')[0] + '.' + options.targetIP.split('.')[1] + '.' +
                 options.targetIP.split('.')[2] + '.' + str(i))
    else:
        Scan(options.targetIP)


if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值