python中ping的一种简单方法

pythonping的Python项目详细描述


pythonping

python ping是python中ping的简单方法。使用它,您可以像从终端发送icmp探测一样将icmp探测发送到远程设备。pythonping是模块化的,因此您可以将它作为一个独立的函数在脚本中运行,或者将其组件集成到一个成熟的应用程序中。

基本用法

pythonping最简单的用法是在脚本中。可以使用ping函数ping目标。如果希望立即看到输出,模拟终端上发生的情况,请使用下面的verbose标志。

frompythonpingimportpingping('127.0.0.1',verbose=True)

这将导致以下结果。

Reply from 127.0.0.1, 9 bytes in 0.17ms
Reply from 127.0.0.1, 9 bytes in 0.14ms
Reply from 127.0.0.1, 9 bytes in 0.12ms
Reply from 127.0.0.1, 9 bytes in 0.12ms

不管详细模式如何,ping函数都将返回一个ResponseList对象。这是一个特殊的iterable对象,包含Response项的列表。在每个响应中,您都可以找到接收到的数据包和一些元信息,比如接收响应所花的时间和任何错误消息。 您还可以使用ping的一些附加参数来调整ping:

  • size是一个整数,允许您指定所需icmp负载的大小
  • timeout是在假定目标无法到达之前,您希望等待响应的秒数
  • payload允许您使用特定的负载(字节)
  • count指定允许您定义要发送的ICMP数据包的数量
  • sweep_startsweep_end允许您执行ping扫描,从sweep_start中定义的负载大小开始,一直到sweep_end中定义的大小。在这里,我们重复您提供的负载以匹配所需的大小,或者如果没有提供负载,我们生成一个随机负载。注意,如果定义了size,这两个字段将被忽略
  • df是一个标志,如果设置为true,将启用IP头中的不分段标志
  • verbose启用详细模式,将输出打印到流(请参见out
  • out是详细模式的目标流。如果启用详细模式,但不提供out,详细输出将发送到sys.stdout流。例如,您可能想在这里使用一个文件。

高级用法

如果希望扩展python ping或将其集成到应用程序中,我们建议使用python ping的一部分类,而不是ping函数。 executor.Communicator处理与目标设备的通信,它负责发送icmp请求和处理响应。它最终生成executor.ResponseList对象。Communicator需要知道目标和要发送到远程设备的有效负载。为此,我们在payload_provider模块中有几个类。您可能希望通过扩展payload_provider.PayloadProvider创建自己的提供者。如果您对此感兴趣,应该检查executorpayload_provider模块的文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中的字符串字符下打印星号(*)   java在比较数据后得到错误的结果   java如何在使用JSP创建的网站中创建父子关系和处理?   java配置单元UDF:无法执行求值方法   java GAE项目Intellij远程调试在关闭时不释放端口   java按钮上的放大和缩小功能点击JfreeChart折线图?   java Selenium Chrome Web驱动程序SessionNotCreatedException   java由ADFactoryBuilder生成的线程工厂是线程安全的吗?   java将字符串[]传递给另一个类Android(使用intent)   我为什么要嘲笑java?   JavaLiferay门户不将对象从流程阶段发送到jsp   java我想在单击每个树节点时将要添加的信息放入jpanel jscrollpane中   在Java中模拟数组引用(即对引用的引用)的按引用传递   Jackson将JSON属性反序列化为不同的Java对象   java使用JSP/servlet在网页上显示Excel工作表?   仿射变换Java:使用仿射变换时游戏速度减慢   Servlet JBoss AS 7的java EJB注入   在Oracle数据库中使用Java的plsql   java管理Maven项目中的库依赖项   JavaEclipseLink(JPA)异常:复合主键@JoinColumn