• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python检测远程udp端口是否打开的方法

python检测远程udp端口是否打开的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python udp,python socket udp,python udp编程,python3 udp,python udp server等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了python检测远程udp端口是否打开的方法。分享给大家供大家参考。具体实现方法如下:

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]))</div>

希望本文所述对大家的Python程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • python网络编程之数据传输UDP实例分析
  • python检测远程udp端口是否打开的方法
  • python检测远程udp端口是否打开的方法
  • python基础教程之udp端口扫描

相关文章

  • python操作数据库之sqlite3打开数据库、删除、修改示例
  • 从零学python系列之教你如何根据图片生成字符画
  • python实现解数独程序代码
  • Python文件夹与文件的操作实现代码
  • 各种Python库安装包下载地址与安装过程详细介绍(Windows版)
  • 自动化Nginx服务器的反向代理的配置方法
  • 线程和进程的区别及Python代码实例
  • 低版本中Python除法运算小技巧
  • Python实现的数据结构与算法之双端队列详解
  • Python中dictionary items()系列函数的用法实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python算法学习之计数排序实例
    • Python 搭建Web站点之Web服务器与Web框架
    • Python的Asyncore异步Socket模块及实现端口转发的例子
    • Python基本语法经典教程
    • python实现获取Ip归属地等信息
    • 一张图带我们入门Python基础教程
    • python发送邮件示例(支持中文邮件标题)
    • python读写ini配置文件方法实例分析
    • Python的Django框架使用入门指引
    • 对于Python中RawString的理解介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有