def ping_once(self, dest_addr, timeout, sequence):
icmp = socket.getprotobyname('icmp')
try:
icmp_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp)
except socket.error, (errno, msg):
if errno == 1:
msg = '%s : Just root can send ICMP Message' % msg
raise socket.error(msg)
raise
packet_id = os.getpid() & 0xFFFF
self.__send_icmp_request(icmp_socket, dest_addr, packet_id, sequence)
delay = self.__receive_icmp_response(icmp_socket, packet_id, timeout)
icmp_socket.close()
return delay
评论列表
文章目录