本篇文章小编给大家分享一下python实现ping命令小程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
ping的原理是发送一个ICMP请求包,然后根据目的地址的应答包来判断是否能够和这个主机进行通信。
我们使用python实现,借助于scapy来进行编写程序。
from scapy.all import *
import time,struct,random
# 编写ping一个包的函数。
def ping_one(dst = '36.152.44.95',ttl_no = 64,id_no = 345,seq_no = 5):
start_time = time.time()
# 将时间转换为二进制序列。
time_to_bytes = struct.pack('>d',start_time)
# 进行发送ICMP包,发送出去一个,收回来一个。
ping_one_result = sr1(IP(dst = dst,ttl = ttl_no)/ICMP(seq = seq_no,id = id_no)/time_to_bytes, timeout = 1, verbose=False)
# print(ping_one_result.show())
# 判断收回来的包是不是ICMP的应答包,和序列号是否相同。
try:
if ping_one_result.getlayer('ICMP').type == 0 and ping_one_result.getlayer('ICMP&#