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程序中设置HTTP代理
Nov 06 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
TensorFlow如何实现反向传播
Feb 06 Python
python实现flappy bird游戏
Dec 24 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
python sqlite的Row对象操作示例
Sep 11 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
python中turtle库的简单使用教程
Nov 11 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 Python
在python中实现导入一个需要传参的模块
May 12 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
PHP输入流php://input实例讲解
2015/12/22 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Apache部署Django项目图文详解
2019/07/30 Python
详解python中的数据类型和控制流
2019/08/08 Python
python多进程并发demo实例解析
2019/12/13 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
python3中编码获取网页的实例方法
2020/11/16 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
个人贷款承诺书
2014/03/28 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
自我工作评价范文
2015/03/06 职场文书
湘江北去观后感
2015/06/15 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书