Python. Поиск ip адреса из базы данных sql, по заданным параметрам
PyCharm. Есть БД с ip адресами (psql). Нужно в графическом интерфейсе (tkinter), сделать поле ввода в которое можно записать параметр поиска ip адреса. Далее по нажатию кнопки они выполняет поиск подходящих ip адресов и записывает их блонкон, или хотя бы пусть выведет их в консоли.
Например найти все ip начинающиеся с 2.ххх.ххх.ххх или ххх.210.ххх.ххх
Я только начинаю это всё изучать, буду рад любой помощи Подключение к бд ( psycopg2 ), графическое окно, поле ввода,кнопку я написал, осталось выполнить поиск нужных ip адресов.
Это мой код. Сейчас я на данном моменте остановился. Не судите строго, первая моя работа!
import datetime
import psycopg2
from tkinter import *
import re
import socket
def Menu():
window = Tk()
window.geometry("500x350")
window.title("___hello___")
StringVar()
vcmd = window.register(regulayr)
IP_label = Label(text="Введите IP: ")
IP_label.grid(row=3, column=0, padx=5, pady=5, sticky='ew')
IP_entry = Entry(window, textvariable=StringVar, width=23, validate='key', validatecommand=(vcmd, '%P'))
IP_entry.grid(row=3, column=1, padx=5, pady=5)
btn_IP = Button(window, text="Поиск IP")
btn_IP.config(command=lambda: button3(connector))
btn_IP.grid(row=3, column=2, padx=3, pady=3)
window.mainloop()
def Open_DB():
conn = psycopg2.connect(
host="XXX",
user="XXX",
port="XXX",
database="XXX",
password="XXX"
)
return conn
def button3(conn):
cur = conn.cursor()
cur.execute("SELECT ip FROM IPv4 limit 20")
rows = cur.fetchall()
filename = datetime.datetime.now()
with open(filename.strftime("%d.%m.%Y_%H-%M-%S") + ".txt", 'a+') as txt:
for row in rows:
print(row)
txt.writelines(str(row) + '\n')
txt.close()
connector = Open_DB()
Menu()
def regulayr(p):
test = re.compile('(^\d{0,3}$|^\d{1,3}\.\d{0,3}$|^\d{1,3}\.\d{1,3}\.\d{0,3}$|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{0,3}$)')
if test.match(p):
return True
else:
return False