1

Hello I'm looking for some help with a project I recently took up to help check pc connectivity in my workplace. I am fairly new to python and programming in general so a large portion of this may be wrong. I'm trying to create a simple IP logger that will ping the destination address and return a value to determine the connection state of the machine. It will take the data from a CSV file (excell.xlsx) and splice the IP address from the information provided in cell style format, then output the connection state with a simple "connected" or "disconnected" after relisting the input file. Here's what I've come up with so far:

import csv, platform, subprocess, os as sys

#Defines filepath locations (Adjustment may be required)
in_path = sys.os.path['C:\Users\User\Documents\IpLog\log1.xlsx']
out_path = sys.os.path['C:\Users\User\Documents\IpLog\ip_log.xlsx']


try:
    ip = 0

    reference = out_path
    host = '?'
    line_count = 0
    with open(in_path, dialect='excel', delimeter=',', newline='') as csvfile:
       for row in csvfile:
           if line_count == 0:
                ip_inp = csv.reader(in_path, dialect='excel') #adjust filename as needed.
                ip = ip_inp[ip_inp.index('10.21')]
                ip = ip[5::]
                line_count += 1

    for line in ip_inp:
        def ping(ip):
            """
            Returns True if host (str) responds to a ping request.
            Remember that a host may not respond to a ping (ICMP) request  even if the host name is valid.
            """

            # Option for the number of packets as a function of
            param = '-n' if platform.system().lower() == 'windows' else '-c'

            # Building the command. Ex: "ping -c 1 google.com"
            command = ['ping', param, '1', ip]

            return subprocess.call(command) == 0

        if subprocess.call(command) == 0:
            status = subprocess.call(command)
        else:
            status = 1
            if status == 0:
                if line_count == 0:
                    net_state = 'Connected'
                    with open(out_path, delimiter=',') as csvfile2:
                        print(csvfile)
                        csv.writer(csvfile2, dialect='excel')
                        print(net_state)
                else:
                    net_state = 'Disconnected'
                    with open(out_path, delimiter=',') as csvfile2:
                        print(csvfile)
                        csv.writer(csvfile2, dialect='excel')
                        print(net_state)

except IOError:
    print('Error opening the input file please check file input name and file location and try again.')

finally:
    raise SystemExit('Operation Completed. Results have been written to (%s)' % out_path)

Right now the error I keep running into is truncation in my global file path variables. Can anyone tell me why this may be happening?

  • 1
    What is your question exactly? What errors do you have (if any)? and what exactly is your desired outcome? We appreciate you posting code and making an effort, but we need a few more details. Welcome to SO! – Lord Elrond Mar 16 '19 at 04:33
  • Fair enough I’ll keep updating it as I go but this is what I’ve come up with so far on issues (posting of problems will be shown after block of code) – Benjamin Carroll Mar 17 '19 at 02:13

0 Answers0