python 批量ping服务器

摘要:
具体用法为中文。多亏了作者尤福,我在这里改了几个单词,以方便我的穷英语同学使用英语。py#!

最近在https://pypi.python.org/pypi/mping/0.1.2找到了一个python包,可以用它来批量ping服务器,它是中国的大神写的,支持单个服务器、将服务器IP写在txt或json里都可以。

具体用法有中文文档,感谢作者

这里我改了几个字,方便我这种英文不好的同学使用

mping.py

python 批量ping服务器第1张python 批量ping服务器第2张
#!/usr/bin/env python3
# coding: utf-8

import argparse
import ctypes
import json
import os
import random
import re
import select
import socket
import struct
import sys
import threading
import time

if sys.platform.startswith('win32'):
    clock = time.clock
    run_as_root = ctypes.windll.shell32.IsUserAnAdmin() != 0
else:
    clock = time.time
    run_as_root = os.getuid() == 0

DEFAULT_DURATION = 3

EXIT_CODE_BY_USER = 1
EXIT_CODE_DNS_ERR = 2
EXIT_CODE_IO_ERR = 3


# Credit: https://gist.github.com/pyos/10980172
def chk(data):
    x = sum(x << 8 if i % 2 else x for i, x in enumerate(data)) & 0xFFFFFFFF
    x = (x >> 16) + (x & 0xFFFF)
    x = (x >> 16) + (x & 0xFFFF)
    return struct.pack('<H', ~x & 0xFFFF)


# From the same gist commented above, with minor modified.
def ping(addr, timeout=1, udp=not run_as_root, number=1, data=b''):
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM if udp else socket.SOCK_RAW, socket.IPPROTO_ICMP) as conn:
        payload = struct.pack('!HH', random.randrange(0, 65536), number) + data

        conn.connect((addr, 80))
        conn.sendall(b'x08

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇项目组件:分页(pagination)VB 的字符串处理函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python爬虫入门02:教你通过 Fiddler 进行手机抓包

哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 python爬虫入门01:教你在Chrome浏览器轻松抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中摸清了一些套路 但是 除了对数据进行解析之外 有时候我们想 对请求的数据或者响应的数据进行篡改 怎么做呢? 我们经常在用的手机 手机里面的数据 怎么对它...

Python学习笔记(20)pymysql模块

一、pymysql模块 pymysql模块是python中连接数据库的一个常用第三方库 2.1 pymysql.connect() 通过该方法连接数据库 import pymysql # 打开数据库连接 db = pymysql.connect(host="XX.XXX.XXX.XXX",user='testuser',passwd:'test123',"...

python安装matplotlib:python -m pip install matplotlib报错

matplotlib是python中强大的画图模块。 首先确保已经安装python,然后用pip来安装matplotlib模块。 进入到cmd窗口下,建议执行python -m pip install -U pip setuptools进行升级。 接着键入python -m pip install matplotlib进行自动的安装,系统会自动下载安...

Python 0001:生成激活码

Talk is cheap,Show me the code! “‘ 第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? ’” 有参考和借鉴,写这篇随笔是为了记忆和理解。 我自己的想法是用random模块做,其他也不熟悉。UU...

python pymysql连接数据库并创建表

之前看菜鸟教程 #!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() #...

python下进行10进制转16进制不带0x并且将16进制转成小端序

前记   python涉及到和硬件互交的部分,一般是需要发送十六进制的帧长的。所以,python这个转换还是经常使用的。笔者在这里遇到了一个问题。就做一个记录吧。 基本方法:  假如你熟悉python的话,这个是非常简单的,就只需要把int类型的数取从第二位开始的数据就行了:如下所述: hex(28)[2:] 测试实例: import sys arr...