python udp_如何用python方法检测UDP端口
如何用python方法检测UDP端口,首先要了解什么是UDP端口及作用。网上搜索了一圈后,我得到的个人理解是: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
#www.iplaypy.com
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]))
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/other/o2171.html
相关文章 Recommend
python udp_如何用python方法检测UDP端口相关推荐
- python数据分析——如何用python连接远程数据库
本文将以SQLite.MySQL,PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作. SQLite SQLite可能是与Python连接的最方便的数据库,因为我们不需要安 ...
- python workflow_如何用 Python 写 Alfred Workflow
原标题:如何用 Python 写 Alfred Workflow 用 Mac 的同学应该都听过 Alfred,号称效率神器.但是,你有没有想过可以用 Python 自己写一个 Workflow 呢? ...
- python画-如何用Python画各种著名数学图案 | 附图+代码
原标题:如何用Python画各种著名数学图案 | 附图+代码 用Python绘制著名的数学图片或动画,展示数学中的算法魅力. Mandelbrot 集 代码:46 lines (34 sloc) 1. ...
- 【Python】如何用Python发送SMTP邮件
[背景] 自动发送邮件通知是流成自动化系统必备的功能,今天介绍如何用Python实现. [代码] 这里以163邮箱为例 def send_smtp_mail(host="smtp.163.c ...
- python语言是 创造的_慢步python,如何用python语言创造出一个真正的独立exe程序?...
我们学习编程,终极目标还是编写一个独立的应用程序.独立的应用程序应该像QQ,微信一样不依靠其他程序运行,只有平台支持,就可以运行.从这个意义上说,所用应用程序都是基于操作系统运行的. 那么如何用pyt ...
- 人生苦短我用python壁纸_人生苦短,我用 Python——我如何用 Python 助力工作和生活?...
在生活和工作中,往往充斥着一些枯燥且乏味的事情.所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势. 本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的 ...
- 【Python】如何用 python 计算矩阵相乘 - numpy.dot()
文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...
- chatgpt赋能python:如何用Python计算球的表面积和体积
如何用Python计算球的表面积和体积 球体是数学中的常见图形,计算球的表面积和体积是科学研究和应用中的重要问题.Python作为一种高效.易学.广泛使用的编程语言,可以很方便地用于计算球的表面积和体 ...
- chatgpt赋能python:如何用Python抢券?
如何用Python抢券? 如果你是一个网购达人,你一定知道,有时候一些折扣券或者优惠码是非常有用的.但是,很多时候这些优惠码数量有限,而且很多人都会去抢购,最后的结果就是很多人都抢不到.这时,有些人可 ...
最新文章
- php文件下载脚本,PHP文件下载实例代码浅析
- POJ1236 强连通 (缩点后度数的应用)
- bss,data,text,rodata,堆,栈,常量段
- Windows APC学习笔记(一)—— APC的本质备用APC队列
- java中debug使用
- sap.m.list render initialization process
- 7500 cpuz跑分 i5_核心硬盘 i5 7500性能测试_DIY攒机酷品测试-中关村在线
- mysql 5.7 启动脚本_MySQL数据库 5.7 启动脚本
- android studio -genymotion神奇错误
- WordPress网站弹窗插件PopupPress插件
- C++/C--字符串分割函数 --strtok()
- Django之数据表增删改查
- 视频编码方案之间的比较(HEVC,H.264,MPEG2等)
- vba移动文件_VBA代码如何移动文件,如何复制文件
- 迁移到MySQL的语法转换工具初步设计
- java水电费收费系统_java水电费管理系统
- mysql 5.1 limit_mysql5 limit使用表达式的问题
- 计算机专业的男生喜欢你,男生真心喜欢你的五个表现
- 华为2017年营收突破6000亿;阿里巴巴全球总经理离职;亚马逊将关闭音乐存储服务丨价值早报
- 【向生活低头】wps行间距问题