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


Posted in Python onMarch 14, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python实现哈希表
Feb 07 Python
Python help()函数用法详解
Mar 11 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
答题辅助python代码实现
Jan 16 Python
对python的文件内注释 help注释方法
May 23 Python
在python 中实现运行多条shell命令
Jan 07 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python中dict()的高级用法实现
Nov 13 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
Python如何急速下载第三方库详解
Nov 02 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
python检测远程服务器tcp端口的方法
Mar 14 #Python
python循环监控远程端口的方法
Mar 14 #Python
python通过shutil实现快速文件复制的方法
Mar 14 #Python
python监控网站运行异常并发送邮件的方法
Mar 13 #Python
go语言计算两个时间的时间差方法
Mar 13 #Python
python实现端口转发器的方法
Mar 13 #Python
python实现超简单端口转发的方法
Mar 13 #Python
You might like
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
js如何打印object对象
2015/10/16 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
python模块之re正则表达式详解
2017/02/03 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
香港礼品网站:GiftU eshop
2017/09/01 全球购物
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
软件设计的目标是什么
2016/12/04 面试题
业务员薪酬管理制度
2014/01/15 职场文书
专题组织生活会方案
2014/06/15 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书