如何用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端口相关推荐

  1. python数据分析——如何用python连接远程数据库

    本文将以SQLite.MySQL,PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作. SQLite SQLite可能是与Python连接的最方便的数据库,因为我们不需要安 ...

  2. python workflow_如何用 Python 写 Alfred Workflow

    原标题:如何用 Python 写 Alfred Workflow 用 Mac 的同学应该都听过 Alfred,号称效率神器.但是,你有没有想过可以用 Python 自己写一个 Workflow 呢? ...

  3. python画-如何用Python画各种著名数学图案 | 附图+代码

    原标题:如何用Python画各种著名数学图案 | 附图+代码 用Python绘制著名的数学图片或动画,展示数学中的算法魅力. Mandelbrot 集 代码:46 lines (34 sloc) 1. ...

  4. 【Python】如何用Python发送SMTP邮件

    [背景] 自动发送邮件通知是流成自动化系统必备的功能,今天介绍如何用Python实现. [代码] 这里以163邮箱为例 def send_smtp_mail(host="smtp.163.c ...

  5. python语言是 创造的_慢步python,如何用python语言创造出一个真正的独立exe程序?...

    我们学习编程,终极目标还是编写一个独立的应用程序.独立的应用程序应该像QQ,微信一样不依靠其他程序运行,只有平台支持,就可以运行.从这个意义上说,所用应用程序都是基于操作系统运行的. 那么如何用pyt ...

  6. 人生苦短我用python壁纸_人生苦短,我用 Python——我如何用 Python 助力工作和生活?...

    在生活和工作中,往往充斥着一些枯燥且乏味的事情.所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势. 本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的 ...

  7. 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...

  8. chatgpt赋能python:如何用Python计算球的表面积和体积

    如何用Python计算球的表面积和体积 球体是数学中的常见图形,计算球的表面积和体积是科学研究和应用中的重要问题.Python作为一种高效.易学.广泛使用的编程语言,可以很方便地用于计算球的表面积和体 ...

  9. chatgpt赋能python:如何用Python抢券?

    如何用Python抢券? 如果你是一个网购达人,你一定知道,有时候一些折扣券或者优惠码是非常有用的.但是,很多时候这些优惠码数量有限,而且很多人都会去抢购,最后的结果就是很多人都抢不到.这时,有些人可 ...

最新文章

  1. php文件下载脚本,PHP文件下载实例代码浅析
  2. POJ1236 强连通 (缩点后度数的应用)
  3. bss,data,text,rodata,堆,栈,常量段
  4. Windows APC学习笔记(一)—— APC的本质备用APC队列
  5. java中debug使用
  6. sap.m.list render initialization process
  7. 7500 cpuz跑分 i5_核心硬盘 i5 7500性能测试_DIY攒机酷品测试-中关村在线
  8. mysql 5.7 启动脚本_MySQL数据库 5.7 启动脚本
  9. android studio -genymotion神奇错误
  10. WordPress网站弹窗插件PopupPress插件
  11. C++/C--字符串分割函数 --strtok()
  12. Django之数据表增删改查
  13. 视频编码方案之间的比较(HEVC,H.264,MPEG2等)
  14. vba移动文件_VBA代码如何移动文件,如何复制文件
  15. 迁移到MySQL的语法转换工具初步设计
  16. java水电费收费系统_java水电费管理系统
  17. mysql 5.1 limit_mysql5 limit使用表达式的问题
  18. 计算机专业的男生喜欢你,男生真心喜欢你的五个表现
  19. 华为2017年营收突破6000亿;阿里巴巴全球总经理离职;亚马逊将关闭音乐存储服务丨价值早报
  20. 【向生活低头】wps行间距问题

热门文章

  1. 那个能力很强的程序员学历造假,被辞退了!
  2. Swift之父退出核心团队,自曝原因:环境有毒!
  3. 皮一皮:大家族的悲哀。。。
  4. Redis中主、从库宕机如何恢复?
  5. 还在封装各种 Util 工具类?这个神级框架帮你解决所有问题!
  6. 每日一皮:唯一的编码思想!
  7. 每日一皮:程序员的神逻辑...
  8. 厉害了,程序员的高考试卷,你能拿几分?
  9. 阿里巴巴 Service Mesh 落地的架构与挑战
  10. php mysql 分类_php+mysql实现无限分类实例详解