Trying to convert multiple URLs to IP Address using socket programming in python by loading a ‘csv’ file as input.
<code>def call_Bulk_URL_IP(self):
self.url_file_path = QFileDialog.getOpenFileName(caption="Select URLs file",
filter='All Files(*.csv)')
self.url_file_Path = "nURLs' file selected: {}".format(self.url_file_path[0])
print(self.url_file_Path)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(self.url_file_Path))
if os.path.isfile(self.url_file_path[0]):
start_time = datetime.now()
# counting total lines in Log file
file = open(self.url_file_path[0])
reader = csv.reader(file)
self.lineCount_url_file = len(list(reader))
LineCount_url_file = f"nTotal {self.lineCount_url_file} URLs to convert!n"
print(LineCount_url_file)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(LineCount_url_file))
# setting max value equal to total (Complete) URLs to match
self.progressBar.setMaximum(self.lineCount_url_file)
csv_filename = 'URL2IP ' + datetime.now().strftime("%Y.%m.%d %I.%M.%S%p") + ".csv"
# open result/ output file
with open(csv_filename, 'a') as output_file:
csvwriter = csv.writer(output_file)
line_cnt = 0
ctr_progressBar = 0
with open(self.url_file_path[0], 'r') as line:
url = line.readline().strip().lower()
while url:
if url != '' and any(char.isalpha() or char.isdigit() for char in url) and '.' in url:
try:
ip = socket.gethostbyname(url)
except Exception as error:
Error = f"nLine No {line_cnt}: Error converting ' {url} ':-n{str(error)}n"
print(Error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
pass
else:
url_ip = [url, ip]
csvwriter.writerow(url_ip)
url_ip_output = f'Line No {line_cnt}: {url} ----> {ip}'
print(url_ip_output)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(url_ip_output))
else:
blankError = f"nLine No {line_cnt}:' {url} ' is invalid URL!n"
print(blankError)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(blankError))
line_cnt += 1
ctr_progressBar += 1
# setting progressive value to progress bar
self.progressBar.setValue(ctr_progressBar)
# url = line.readline().strip().lower()
line.close()
end_time = datetime.now()
time_taken = f"nDuration of pgme: {end_time - start_time}"
print(time_taken)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
else:
error = 'nPlease select a "csv" file containing URLs; Try again!n'
print(error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(error))
</code>
<code>def call_Bulk_URL_IP(self):
self.url_file_path = QFileDialog.getOpenFileName(caption="Select URLs file",
filter='All Files(*.csv)')
self.url_file_Path = "nURLs' file selected: {}".format(self.url_file_path[0])
print(self.url_file_Path)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(self.url_file_Path))
if os.path.isfile(self.url_file_path[0]):
start_time = datetime.now()
# counting total lines in Log file
file = open(self.url_file_path[0])
reader = csv.reader(file)
self.lineCount_url_file = len(list(reader))
LineCount_url_file = f"nTotal {self.lineCount_url_file} URLs to convert!n"
print(LineCount_url_file)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(LineCount_url_file))
# setting max value equal to total (Complete) URLs to match
self.progressBar.setMaximum(self.lineCount_url_file)
csv_filename = 'URL2IP ' + datetime.now().strftime("%Y.%m.%d %I.%M.%S%p") + ".csv"
# open result/ output file
with open(csv_filename, 'a') as output_file:
csvwriter = csv.writer(output_file)
line_cnt = 0
ctr_progressBar = 0
with open(self.url_file_path[0], 'r') as line:
url = line.readline().strip().lower()
while url:
if url != '' and any(char.isalpha() or char.isdigit() for char in url) and '.' in url:
try:
ip = socket.gethostbyname(url)
except Exception as error:
Error = f"nLine No {line_cnt}: Error converting ' {url} ':-n{str(error)}n"
print(Error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
pass
else:
url_ip = [url, ip]
csvwriter.writerow(url_ip)
url_ip_output = f'Line No {line_cnt}: {url} ----> {ip}'
print(url_ip_output)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(url_ip_output))
else:
blankError = f"nLine No {line_cnt}:' {url} ' is invalid URL!n"
print(blankError)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(blankError))
line_cnt += 1
ctr_progressBar += 1
# setting progressive value to progress bar
self.progressBar.setValue(ctr_progressBar)
# url = line.readline().strip().lower()
line.close()
end_time = datetime.now()
time_taken = f"nDuration of pgme: {end_time - start_time}"
print(time_taken)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
else:
error = 'nPlease select a "csv" file containing URLs; Try again!n'
print(error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(error))
</code>
def call_Bulk_URL_IP(self):
self.url_file_path = QFileDialog.getOpenFileName(caption="Select URLs file",
filter='All Files(*.csv)')
self.url_file_Path = "nURLs' file selected: {}".format(self.url_file_path[0])
print(self.url_file_Path)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(self.url_file_Path))
if os.path.isfile(self.url_file_path[0]):
start_time = datetime.now()
# counting total lines in Log file
file = open(self.url_file_path[0])
reader = csv.reader(file)
self.lineCount_url_file = len(list(reader))
LineCount_url_file = f"nTotal {self.lineCount_url_file} URLs to convert!n"
print(LineCount_url_file)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(LineCount_url_file))
# setting max value equal to total (Complete) URLs to match
self.progressBar.setMaximum(self.lineCount_url_file)
csv_filename = 'URL2IP ' + datetime.now().strftime("%Y.%m.%d %I.%M.%S%p") + ".csv"
# open result/ output file
with open(csv_filename, 'a') as output_file:
csvwriter = csv.writer(output_file)
line_cnt = 0
ctr_progressBar = 0
with open(self.url_file_path[0], 'r') as line:
url = line.readline().strip().lower()
while url:
if url != '' and any(char.isalpha() or char.isdigit() for char in url) and '.' in url:
try:
ip = socket.gethostbyname(url)
except Exception as error:
Error = f"nLine No {line_cnt}: Error converting ' {url} ':-n{str(error)}n"
print(Error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
pass
else:
url_ip = [url, ip]
csvwriter.writerow(url_ip)
url_ip_output = f'Line No {line_cnt}: {url} ----> {ip}'
print(url_ip_output)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(url_ip_output))
else:
blankError = f"nLine No {line_cnt}:' {url} ' is invalid URL!n"
print(blankError)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(blankError))
line_cnt += 1
ctr_progressBar += 1
# setting progressive value to progress bar
self.progressBar.setValue(ctr_progressBar)
# url = line.readline().strip().lower()
line.close()
end_time = datetime.now()
time_taken = f"nDuration of pgme: {end_time - start_time}"
print(time_taken)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(Error))
else:
error = 'nPlease select a "csv" file containing URLs; Try again!n'
print(error)
# passing value to Output Console (Text Browser)
self.output_rd.append(str(error))
The error its throwing each time, which leads to crashing of the software itself is:-
Process finished with exit code -1073741819 (0xC0000005)
Please help, as to how to resolve this memory access issue?