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端口是否打开相关推荐

  1. python探测端口_python检测远程服务器tcp端口的方法

    本文实例讲述了python检测远程服务器tcp端口的方法.分享给大家供大家参考.具体如下: python检测远程服务器tcp端口的代码,这段代码可以用来做服务器监控实用 #!/usr/bin/env ...

  2. python监听鼠标事件_Python中使用PyHook监听鼠标和键盘事件实例

    Python 中使用 PyHook 监听鼠标和键盘事件实例 PyHook 是一个基于 Python 的"钩子"库,主要用于监 听当前电脑上鼠标和键盘的事件.这个库依赖于另一个 Py ...

  3. python监听串口数据_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

  4. 基于网络监听的摄像头遮挡检测

    本文由本人原创,仅作为自己的学习记录 最近研究物联网安全,需求之一就是要实现摄像头遮挡的检测,调研了很久,很多都是基于视频帧分析的,这样不仅处理繁琐,而且对不同编码格式的视频处理也不尽相同,结合最近在 ...

  5. 【做一下1】python 监听数据库变化

    前言 用的yolov5,作者自己写的loadStream函数就是依据 streams.txt里面的rtsp流地址列表来新建线程,然后实现多路监控的. 大体就是这个图里面说的,我已经是为了个整体业务,去 ...

  6. python监听多个udp端口_Python的Socket编程过程中实现UDP端口复用的实例分享

    关于端口复用 一个套接字不能同时绑定多个端口,如果客户端想绑定端口号,一定要调用发送信息函数之前绑定( bind )端口,因为在发送信息函数( sendto, 或 write ),系统会自动给当前网络 ...

  7. python监听udp端口,Python和UDP监听

    我有一个应用程序,软件定义无线电,在一个端口上广播UDP数据包,告诉听众已经设置了什么频率和解调模式(等等). 我编写了一个演示python客户端(下面的代码)来监听端口,并将相应数据包中的信息转储到 ...

  8. python监听多个udp端口_尝试实现非阻塞python-udp多端口获取wierd异常

    我试图实现一个非阻塞的pythonudp服务器,它监听多个端口.在 我在这个Stackover posting中找到了一些代码,并将其修改为监听多个套接字,到目前为止,非常好.在 我的代码如下.在#! ...

  9. python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...

    # encoding=utf-8 import json import sys # 调用AcsClient参数进行身份验证 from aliyunsdkcore.client import AcsCl ...

最新文章

  1. 数据库备份到文件服务器,数据库文件备份到云服务器上
  2. 李宏毅线性代数笔记8 :坐标系变换8
  3. 我是一只IT小小鸟读书笔记
  4. mvc2中如何在下拉列表中显示含有子类的项(子类前加--)
  5. HDU1425 A Chess Game
  6. Web开发者不可不知的16条原则
  7. middle函数C语言,C语言函数调用栈(三)
  8. linq to js使用汇总
  9. laravel 5 自定义全局函数,怎么弄呢?
  10. 2015计算机二级java真题_2015年计算机二级考试java试题
  11. 14种模式解决面试算法编程题(PART II)
  12. 神经网络仿真实验matlab,神经网络及其matlab实现
  13. T60 Fan Error 解决办法.转自ZOL产品论坛-作者zxymb
  14. Scrapy框架以及scrapy-redis实现分布式爬虫
  15. ShareX:一款你值得拥有的截图识别工具ShareX
  16. Vue创建app及App挂载和渲染
  17. JavaScript的全局作用域、全局对象window
  18. Android 9.0 行为变更(一)针对所有 API 级别的应用
  19. 学习云计算技术前景在哪里?云计算技术发展趋势
  20. .net core QuartzUI 执行定时任务

热门文章

  1. 9. 混合模型和EM(2)
  2. 计算机考研我该如何准备,计算机考研该如何准备呢-考研初试
  3. 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. 一起学nRF51xx 21 -  蓝牙项目工程的初始化流程解读
  5. TCL with SNPS collection_limitget_lib_pins
  6. 【DIY】嫌arduino太贵?太大?试试ATTINY85!DIY温湿度计入门级教程请收下
  7. Android 8.0新特性(看这篇文章就够了)
  8. hihoCoder #1195 : 高斯消元·一
  9. 操作系统基本分段存储管理方式
  10. Altium Designer学习---如何进行SI仿真