Linux(Debian) + Vmware server 2 + Linux software RAID(mdadm)
0 Пользователей и 1 Гость просматривают эту тему.
#!/usr/bin/python2# -*- coding: utf-8 -*-from os import popen as cmdfrom sys import argvfrom socket import gethostbyname as nametoipfrom socket import gethostbyaddr as iptonamedef backresolv(ip): try: name = " ( " + iptoname(ip)[0] + " ) " except: name = " ( " + ip + " ) " return namettl=ip=1trace=""srcip=nametoip(argv[1])while(ip!=srcip): answer = cmd("ping "+srcip+" -c 1 -W 3 -t "+str(ttl)).read() for line in answer.split("\n"): if 'from' in line.split(): ip = line.split()[3][:-1] if ttl != 1: trace += str(ttl)+": "+ip+backresolv(ip)+"\n" else: trace += str(ttl)+": "+ip+backresolv(ip)+"\n" elif 'exceeded' in line.split(): ip = line.split()[1] if ttl != 1: trace += str(ttl)+": "+ip+backresolv(ip)+"\n" else: trace += str(ttl)+": "+ip+backresolv(ip)+"\n" elif line.find('100% packet loss') != -1 and answer.find('exceeded') == -1: ip = answer.split("\n")[0].split()[1] trace += str(ttl)+": "+ip+backresolv(ip)+" unavailable\n" ttl += 1print trace
$ ./tr.py habrahabr.ru1: 192.168.3.1 ( 192.168.3.1 ) 2: 95.156.118.254 ( 95.156.118.254 ) 3: 87.236.40.1 ( mbr.kraslan.ru ) 4: 87.236.40.206 ( 87.236.40.206 ) 5: 195.112.232.25 ( 195.112.232.25 ) 6: 212.188.23.137 ( 212.188.23.137 ) 7: 195.34.53.85 ( m9-cr01-po3.msk.stream-internet.net ) 8: 195.34.36.142 ( Caravan-m9.msk.stream-internet.net ) 9: 212.24.42.131 ( v810.th-1.caravan.ru ) 10: 62.213.71.224 ( 62.213.71.224 )
$ traceroute -I www.ruThe specified type of tracerouting is allowed for superuser only