Пример #1
0
def ping(target):
    # https://pypi.org/project/pingparsing/
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = target
    transmitter.count = num_of_ping

    output = json.dumps(ping_parser.parse(transmitter.ping()).as_dict(),
                        indent=4)
    '''
    "destination": "8.8.8.8",
    "packet_transmit": 10,
    "packet_receive": 10,
    "packet_loss_count": 0,
    "packet_loss_rate": 0.0,
    "rtt_min": 15.132,
    "rtt_avg": 19.378,
    "rtt_max": 27.466,
    "rtt_mdev": 3.695,
    "packet_duplicate_count": 0,
    "packet_duplicate_rate": 0.0
    '''
    rtt_min = json.loads(output)['rtt_min']
    rtt_avg = json.loads(output)['rtt_avg']
    rtt_max = json.loads(output)['rtt_max']
    packet_loss = json.loads(output)['packet_loss_rate']
    return (rtt_min, rtt_avg, rtt_max, packet_loss)
Пример #2
0
def pingparse(ip):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = ip
    transmitter.count = 5
    result = transmitter.ping()
    return ping_parser.parse(result).as_dict()
Пример #3
0
def parse_ping(logger, dest_or_file, interface):

    data = dest_or_file.split(",")
    transmitter = pingparsing.PingTransmitter()
    if len(data) > 0:
        transmitter.destination_host = data[0]
    else:
        transmitter.destination_host = "localhost"
    transmitter.interface = interface

    if len(data) > 1:
        transmitter.tos = data[1]
    else:
        transmitter.tos = 0

    if len(data) > 2:
        transmitter.packet_size = data[2]
    else:
        transmitter.packet_size = 56

    if len(data) > 3:
        transmitter.count = data[3]
    else:
        transmitter.count = 3

    result = transmitter.ping()
    ping_result_text = result.stdout

    if result.returncode != 0:
        logger.error(result.stderr)

    ping_parser = pingparsing.PingParsing()
    ping_parser.parse(ping_result_text)

    return (dest_or_file, ping_parser.as_dict())
Пример #4
0
def ping(host: str) -> pingparsing.PingStats:
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 2
    transmitter.timeout = 2000
    return ping_parser.parse(transmitter.ping())
Пример #5
0
    def run():
        global old_value_sent, old_value_recv
        while flag:
            new_value_sent = psutil.net_io_counters().bytes_sent
            new_value_recv = psutil.net_io_counters().bytes_recv
            row = ""
            transmitter = pingparsing.PingTransmitter()
            transmitter.destination = "emea2cps.adobeconnect.com"
            transmitter.count = 4
            result = transmitter.ping()
            strings = result.stdout.split("\r\n")
            if old_value_sent and old_value_recv:
                up = round(send_stat(new_value_sent - old_value_sent), 4)
                dw = round(recv_stat(new_value_recv - old_value_recv), 4)
                row = str(datetime.datetime.now()) + ", upload: " + str(
                    up) + " Mbit" + ", download: " + str(
                        dw) + " Mbit" + ", ping: " + strings[12].split(
                            ",")[2] + " Packet Loss:" + strings[10] + "\n"
                fileRow = (
                    str(datetime.datetime.now()) + "," + str(up) + "," +
                    str(dw) + "," +
                    strings[12].split(",")[2].split("=  ")[1].split("ms")[0] +
                    "," + strings[10].split("(")[1].split("%")[0] + "\n")
                file2write.write(fileRow)
            if not flag:
                file2write.close()
                break

            old_value_sent = new_value_sent
            old_value_recv = new_value_recv

            variable.set(str(row))
Пример #6
0
def parse_ping(logger, dest_or_file, interface, count, deadline, is_parse_icmp_reply):
    if os.path.isfile(dest_or_file):
        with open(dest_or_file) as f:
            ping_result_text = f.read()
    else:
        transmitter = pingparsing.PingTransmitter()
        transmitter.destination_host = dest_or_file
        transmitter.interface = interface
        transmitter.count = count
        transmitter.deadline = deadline
        transmitter.is_quiet = not is_parse_icmp_reply

        try:
            result = transmitter.ping()
        except CommandError as e:
            logger.error(e)
            sys.exit(e.errno)

        ping_result_text = result.stdout
        if result.returncode != 0:
            logger.error(result.stderr)

    ping_parser = pingparsing.PingParsing()
    stats = ping_parser.parse(ping_result_text)
    output = stats.as_dict()
    if is_parse_icmp_reply:
        output["icmp_reply"] = stats.icmp_reply_list

    return (dest_or_file, output)
Пример #7
0
def srv_stats(item, rf_id, user_id, user_pass):
    #print(item)
    #print(threading.current_thread())
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination_host = item
    transmitter.count = 1
    result = transmitter.ping()
    if ping_parser.parse(result).as_dict()['rtt_avg'] is None:
        ping = -1
    else:
        ping = ping_parser.parse(result).as_dict()['rtt_avg']
    server_ping.labels(serverip=item).set(ping)
    total_url = "https://%s%sSystems/%s" % (item, red_fish_url, rf_id)
    session = requests.Session()
    session.mount('https://', HTTPAdapter(max_retries=connection_retry))
    try:
        data = session.get(total_url, auth=(user_id, user_pass), verify=False, timeout=connection_timeout)
    except requests.exceptions.RequestException as ex:
        print(ex)
    finally:
        stdout = json.loads(data.text)
        print(stdout)
        data_dict = {'Manufacturer': str(stdout['Manufacturer']),
                   'Status': str(stdout['Status']['Health']),
                   'Model': str(stdout['Model']),
                   'PowerState': str(stdout['PowerState']),
                   'hostName': str(stdout['HostName']),
                   'SerialNumber': str(stdout['SerialNumber'])}
        if 'SKU' in stdout:
            data_dict['SKU'] = str(stdout['SKU']) #service tag
        server_general.labels(serverip=item).info(data_dict)
Пример #8
0
    def startPing():
        ping_parser = pingparsing.PingParsing()
        transmitter = pingparsing.PingTransmitter()
        transmitter.destination = ping_addr
        print(getTime() + "\tStarting ping test #" + str(i) +
              " with destination: " + transmitter.destination)
        #transmitter.count = 10
        transmitter.deadline = duration
        result = transmitter.ping()
        json.dumps(ping_parser.parse(result).as_dict(), indent=4)

        destination = ping_parser.destination
        transmitted_pkt = ping_parser.packet_transmit
        received_pkts = ping_parser.packet_receive
        lost_pkts = ping_parser.packet_loss_count
        pkt_loss_rate = ping_parser.packet_loss_rate
        rtt_min = ping_parser.rtt_min
        rtt_avg = ping_parser.rtt_avg
        rtt_max = ping_parser.rtt_max
        rtt_mdev = ping_parser.rtt_mdev
        pkt_duplicate = ping_parser.packet_duplicate_count
        pkt_duplicate_rate = ping_parser.packet_duplicate_rate

        #store results in DB.
        sql = (
            "INSERT INTO ping_results (test_id, attack_frame_rate, destination, transmitted_pkt, received_pkts, lost_pkts, pkt_loss_rate, rtt_min, rtt_avg, rtt_max, rtt_mdev, pkt_duplicate, pkt_duplicate_rate, duration, exp_start_time) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
        )
        values = (test_id, attack_frame_rate, destination, transmitted_pkt,
                  received_pkts, lost_pkts, pkt_loss_rate, rtt_min, rtt_avg,
                  rtt_max, rtt_mdev, pkt_duplicate, pkt_duplicate_rate,
                  duration, exp_start_time)
        executeQuery(sql, values)
        print("end of ping\t" + getTime())
Пример #9
0
def from_ping(target, count=10):
    """
    Collects latency data based on `ping`.

    :param target: destination host to ping
    :param count: number of pings to perform (default is 10)
    :return: latency data
    """

    transmitter = pingparsing.PingTransmitter()
    transmitter.destination_host = target
    transmitter.count = count

    parser = pingparsing.PingParsing()

    try:
        raw_result = parser.parse(transmitter.ping())
        result = raw_result.as_dict()

        return Latency(
            target=target,
            loss=result['packet_loss_rate'],
            average=result['rtt_avg'],
            minimum=result['rtt_min'],
            maximum=result['rtt_max']
        )
    except (KeyboardInterrupt, SystemExit):
        raise
    except:
        return None
Пример #10
0
 def find_server_nearest(self):
     hosts = [
         "18.231.0.104",  ##San Paulo
         "18.203.250.214",  ##Ireland
         "13.125.116.112",  ##Seoul
         "52.66.248.28"
     ]  ##Mumbai
     # hosts = ["www.google.com",  ##San Paulo
     #          "www.facebook.com",  ##Ireland
     #          "www.bing.com",  ##Seoul
     #          "www.baidu.com"]  ##Mumbai
     rtt = 10000
     index = 0
     ping_parser = pingparsing.PingParsing()
     transmitter = pingparsing.PingTransmitter()
     for i in range(len(hosts)):
         print(i)
         transmitter.destination_host = hosts[i]
         transmitter.count = 10
         result = transmitter.ping()
         t = ping_parser.parse(result).as_dict()["rtt_avg"]
         print(t)
         if t < rtt:
             rtt = t
             index = i
     print(hosts[index])
     print(rtt)
     return index
Пример #11
0
def get_ping_time(host):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 10
    result = transmitter.ping()
    result = ping_parser.parse(result).as_dict()
    return result['rtt_avg']
Пример #12
0
    def get_ping_result(self, host, count=5):
        ping_parser = pingparsing.PingParsing()
        transmitter = pingparsing.PingTransmitter()
        transmitter.destination_host = host
        transmitter.count = count
        result = transmitter.ping()
        parse_result = ping_parser.parse(result).as_dict()

        return parse_result
Пример #13
0
def icmp_ping(ip_to_ping, count, id_try):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = ip_to_ping
    transmitter.count = count
    result = transmitter.ping()
    stats = json.loads(
        json.dumps(ping_parser.parse(result).as_dict(), indent=4))
    return stats
Пример #14
0
def ping_bench(dict, host):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 6
    result = transmitter.ping()
    stats = ping_parser.parse(result)
    stats.icmp_replies
    dict['ping'] = stats.icmp_replies
Пример #15
0
def get_ping_stats(destination = "localhost"):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination_host = destination
    transmitter.count = 3
    result = transmitter.ping()
    a = json.dumps(ping_parser.parse(result).as_dict(), indent=4)
    result = json.loads(a)
    return result
Пример #16
0
def check_ping(host):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 10
    result = json.loads(json.dumps(ping_parser.parse(transmitter.ping()).as_dict(), indent=4))
    ping["packet_receive"] += result["packet_receive"]
    ping["packet_loss_count"] += result["packet_loss_count"]
    return (result["packet_receive"], result["packet_loss_count"])
Пример #17
0
def ping_host(host: str):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 10
    transmitter.timeout = TIMEOUT
    result = transmitter.ping()
    rtt_avg = ping_parser.parse(result).as_dict()["rtt_avg"]
    return host, rtt_avg
Пример #18
0
def main():
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination_host = "google.com"
    transmitter.count = 10
    result = transmitter.ping()

    print(json.dumps(ping_parser.parse(result).as_dict(), indent=4))

    return result.returncode
Пример #19
0
 def _ping(self, host, count):
     parsing = pingparsing.PingParsing()
     transmitter = pingparsing.PingTransmitter()
     transmitter.destination = host
     transmitter.count = count
     result = transmitter.ping()
     if result.returncode == 0:
         return parsing.parse(result).as_dict()
     else:
         return None
Пример #20
0
def startPing(ip):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.count = 1
    transmitter.destination_host = ip
    ping_res = transmitter.ping()
    if ping_res.returncode == 0:
        return ping_parser.parse(ping_res).as_dict()
    else:
        return None
def ping_node(ip_addr):
    ping_parser = pp.PingParsing()
    transmitter = pp.PingTransmitter()
    transmitter.destination = ip_addr
    transmitter.count = 10
    result = transmitter.ping()
    try:
        return ping_parser.parse(result.stdout).as_dict()
    except:
        print(result)
        return None
Пример #22
0
    def ping(dest):
        ping_parser = pingparsing.PingParsing()
        transmitter = pingparsing.PingTransmitter()
        transmitter.destination = dest
        transmitter.count = 1
        result = ping_parser.parse(transmitter.ping()).as_dict()

        if 'rtt_avg' in result:
            return result['rtt_avg']

        return None
Пример #23
0
def ping_scan(host):
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = host
    transmitter.count = 5
    try:
        result = transmitter.ping()
        output = json.loads(json.dumps(ping_parser.parse(result).as_dict()))
        return output["rtt_max"] * 0.001
    except:
        pass
Пример #24
0
def ping():
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination_host = "google.com"
    transmitter.count = 1
    result = transmitter.ping()
    json.dumps(ping_parser.parse(result).as_dict(), indent=4)
    global tripTime
    global packetLoss
    tripTime = ping_parser.rtt_avg
    packetLoss = ping_parser.packet_loss
    print(str(tripTime) + " ms")
    print(str(packetLoss) + "%" + " Packet Loss ")
Пример #25
0
    def ping(self, dest_ip):
        '''
        This function takes a destination ip, pings
        to that ip and returns a list containing minimum, average and maximum round
        trip time.
        '''

        ping_parser = pingparsing.PingParsing() # creating an object
        transmitter = pingparsing.PingTransmitter() # create transmitter
        transmitter.destination = dest_ip # set ip for the destination
        transmitter.count = 2 # set number of packets to send
        result = transmitter.ping() # get result and saving it in a variable
        x = ping_parser.parse(result).as_dict() # converting the result into a dictionary format
        return [x['rtt_min'],x['rtt_avg'],x['rtt_max']]
Пример #26
0
 def pinga(self, destination):
     ping_parser = pingparsing.PingParsing()
     transmitter = pingparsing.PingTransmitter()
     transmitter.destination = destination
     transmitter.count = self.count
     transmitter.deadline = self.deadline
     transmitter.timeout = self.timeout
     try:
         result = transmitter.ping()
         resultasdict = json.loads(
             (json.dumps(ping_parser.parse(result).as_dict(), indent=4)))
         return (resultasdict)
     except Exception as e:
         logging.error('Error en ping: {}'.format(e))
         return False
Пример #27
0
def gather_data():
    results = []
    with open('data/nodes.json', 'r') as f: #opening file with IPs
        nodes = json.load(f) #loads json
        for node in nodes: 
            ping_parser = pingparsing.PingParsing() #parsing ping
            transmitter = pingparsing.PingTransmitter() #parsing ping
            transmitter.destination = node["IP"] #pinging the ip object from the json file
            transmitter.count = 1 #amount of times pinging
            result = transmitter.ping() 
            parsed = ping_parser.parse(result).as_dict()
            parsed['ip'] = node["IP"]
            parsed['game'] = node["GAME"]
            results.append(parsed)
    return results
Пример #28
0
def ping():
    global counter, outputs
    print("run #{}".format(counter))
    counter += 1
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = "10.0.0.20"
    transmitter.count = 1000
    transmitter.timestamp = True
    transmitter.ping_option = '-f'

    out = transmitter.ping()

    print(out.stdout)
    outputs.append(out.stdout)
    return out
Пример #29
0
def icmp_ping(ip_to_ping, count):
    """
        :description:           Function to perform icmp ping through pingparsing library.
        :param ip_to_ping:      [str]   IP to ping.
        :param count:           [str]   Number of times that ping should be performed.
        :return:                [list]  list with max, min, avg and mdv statistics.
    """
    ping_parser = pingparsing.PingParsing()
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = ip_to_ping
    transmitter.count = count
    result = transmitter.ping()
    stats = json.loads(
        json.dumps(ping_parser.parse(result).as_dict(), indent=4))
    return stats
Пример #30
0
def ping_control(number):
    transmitter = pingparsing.PingTransmitter()
    transmitter.destination = "10.0.0.20"
    #transmitter.count = 50
    transmitter.timestamp = True
    transmitter.ping_option = "-i 0.020"  #-i 0.010"
    transmitter.deadline = 1
    outputs = []
    for i in range(0, number):
        print("Control Second {}".format(i))
        result = transmitter.ping()
        outputs.append(result)

    for i in range(0, number):
        with open("control_results/{}.txt".format(i), mode='w+') as f:
            f.write(outputs[i].stdout)