Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 533a389

Browse files
Merge pull request #687 from akash435/IPbranch
Added IP Address Extractor-Validator in GUIScripts
2 parents ef00226 + da9bb44 commit 533a389

File tree

18 files changed

+282
-0
lines changed

18 files changed

+282
-0
lines changed
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
2+
# IP Address Extractor-Validator
3+
4+
# imported necessary library
5+
import tkinter
6+
from tkinter import *
7+
import tkinter as tk
8+
import tkinter.messagebox as mbox
9+
from PIL import Image, ImageTk
10+
import re
11+
import sys
12+
13+
14+
15+
# created main window
16+
window = Tk()
17+
window.geometry("1000x700")
18+
window.title("IP Address Extractor-Validator")
19+
20+
21+
22+
# extracting IP Addresses
23+
def go_extract():
24+
# created extract window
25+
window_extract = Tk()
26+
window_extract.geometry("1000x700")
27+
window_extract.title("Extract IP Address")
28+
29+
# function to ectract ip address
30+
def extract_IP_address():
31+
input_text = str(text_enter.get("1.0", "end-1c"))
32+
33+
# declaring the regex pattern for IP addresses
34+
ipPattern = re.compile('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
35+
findIP = re.findall(ipPattern, input_text)
36+
37+
s = ""
38+
for i in findIP:
39+
s = s + i
40+
s = s + "\n"
41+
42+
if len(findIP)>0:
43+
mbox.showinfo("Extracted IP Address", "Total Count : " + str(len(findIP)) + "\n\nExtracted IP Address :\n" + s)
44+
else:
45+
mbox.showinfo("Extracted IP Address", "No IP Address Extracted.")
46+
47+
48+
# top label
49+
start1 = tk.Label(window_extract,text="EXTRACT IP ADDRESS", font=("Arial", 50), fg="magenta") # same way bg
50+
start1.place(x=120, y=10)
51+
52+
# top second label
53+
enter_label = Label(window_extract, text="Enter Your text and Extract IP Address...", font=("Arial", 30), fg="brown")
54+
enter_label.place(x=130, y=100)
55+
56+
# created text area
57+
text_enter = tk.Text(window_extract, height=18, width=80, font=("Arial", 15), bg="light yellow", fg="brown", borderwidth=3,relief="solid")
58+
text_enter.place(x=50, y=150)
59+
60+
# created extract button
61+
extractb = Button(window_extract, text="EXTRACT", command=extract_IP_address, font=("Arial", 25), bg="light green",fg="blue", borderwidth=3, relief="raised")
62+
extractb.place(x=150, y=600)
63+
64+
# function for clearing text area
65+
def clear_text():
66+
text_enter.delete("1.0","end")
67+
68+
# created clear button
69+
clearb = Button(window_extract, text="CLEAR", command=clear_text, font=("Arial", 25), bg="orange", fg="blue",borderwidth=3, relief="raised")
70+
clearb.place(x=650, y=600)
71+
72+
73+
def go_validate():
74+
# created validate window
75+
window_validate = Tk()
76+
window_validate.geometry("1000x700")
77+
window_validate.title("Validate IP Address")
78+
79+
def check(ip):
80+
if '.' in ip:
81+
# ipv4
82+
ip = ip.split('.')
83+
if len(ip) != 4:
84+
return False
85+
for n in ip:
86+
try:
87+
n = int(n)
88+
except:
89+
return False
90+
else:
91+
if n > 255 or n < 0:
92+
return False
93+
return 4
94+
elif ':' in ip:
95+
# ipv4
96+
ip = ip.split(':')
97+
if len(ip) != 8:
98+
return False
99+
for n in ip:
100+
for c in n:
101+
if (c not in map(str, range(10)) and
102+
c not in map(lambda x: chr(x), range(ord('a'), ord('f') + 1))):
103+
return False
104+
return 6
105+
else:
106+
return False
107+
108+
# function for checking validity of IP address
109+
def validate_IP_address():
110+
ip = str(ip_entry.get())
111+
res = check(ip)
112+
if res == False:
113+
mbox.showinfo("Validity Details", "The entered IP Address\n[ " + ip + " ] is NOT VALID.")
114+
elif res == 4:
115+
mbox.showinfo("Validity Details", "The entered IP Address\n[ " + ip + " ] is VALID\n\nAnd type is IPv4.")
116+
elif res == 6:
117+
mbox.showinfo("Validity Details", "The entered IP Address\n[ " + ip + " ] is VALID\n\nAnd type is IPv6.")
118+
else:
119+
mbox.showinfo("Validity Details", "The entered IP Address\n[ " + ip + " ] is VALID\n\nAnd type is UFO.")
120+
121+
# top label
122+
start1 = tk.Label(window_validate,text="Validate IP Address", font=("Arial", 50), fg="magenta") # same way bg
123+
start1.place(x=200, y=10)
124+
125+
# top second label
126+
enter_label = Label(window_validate, text="Enter Your IP Address and see validity...", font=("Arial", 30),fg="brown")
127+
enter_label.place(x=130, y=150)
128+
129+
# label for IP Address
130+
ip_lbl = tk.Label(window_validate,text="IP Address : ", font=("Arial", 30), fg="brown") # same way bg
131+
ip_lbl.place(x=100, y=300)
132+
133+
# Entry Box
134+
ip_entry = Entry(window_validate, font=("Arial", 25), fg='brown', bg="light yellow", borderwidth=3, width=30)
135+
ip_entry.place(x=330, y=300)
136+
137+
# created extract domain button
138+
validateb = Button(window_validate, text="VALIDATE", command=validate_IP_address, font=("Arial", 25),bg="light green", fg="blue", borderwidth=3, relief="raised")
139+
validateb.place(x=150, y=500)
140+
141+
# function for clearing the entry
142+
def clear_entry():
143+
ip_entry.delete(0,END)
144+
145+
# created clear button
146+
clearb = Button(window_validate, text="CLEAR", command=clear_entry, font=("Arial", 25), bg="orange", fg="blue",borderwidth=3, relief="raised")
147+
clearb.place(x=650, y=500)
148+
149+
# function for start button
150+
def start_fun():
151+
# new frame defined
152+
f1 = Frame(window, width=1000, height=700)
153+
f1.propagate(0)
154+
f1.pack(side='top')
155+
156+
# for adding images
157+
c1 = Canvas(f1, width=1000, height=700, bg="white") # blue
158+
c1.pack()
159+
p1 = PhotoImage(file="Images/one.gif")
160+
c1.create_image(0, -10, image=p1, anchor="nw")
161+
w1 = Canvas(window)
162+
w1.p1 = p1
163+
164+
# for adding extract label
165+
extract_lbl = Label(f1, text='Want to Extract Add. ...', font=("Arial", 40), fg="brown", bg = "white")
166+
extract_lbl.place(x=400, y=120)
167+
168+
# created go here button
169+
gohere1b = Button(f1, text="GO HERE", command=go_extract, font=("Arial", 25), bg="light green", fg="blue", borderwidth=3, relief="raised")
170+
gohere1b.place(x = 540, y=200)
171+
172+
# for adding validate label
173+
validate_lbl = Label(f1, text='Want to Check Validity...', font=("Arial", 40), fg="brown", bg="white")
174+
validate_lbl.place(x=400, y=420)
175+
176+
# created go here button
177+
gohere2b = Button(f1, text="GO HERE", command=go_validate, font=("Arial", 25), bg="light green",fg="blue", borderwidth=3, relief="raised")
178+
gohere2b.place(x=540, y=500)
179+
180+
# function defined for showing details
181+
def details_fun():
182+
mbox.showinfo("IP Address Details", "\tAn Internet Protocol address (IP address) is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication.\n\n\tAn IP address serves two main functions: host or network interface identification and location addressing.\n\n\tInternet Protocol version 4 (IPv4) defines an IP address as a 32-bit number. However, because of the growth of the Internet and the depletion of available IPv4 addresses, a new version of IP (IPv6), using 128 bits for the IP address, was standardized in 1998.\n\n\tIP addresses are written and displayed in human-readable notations, such as 172.16.254.1 in IPv4, and 2001:db8:0:.&checktime(1234,0,56,':')7:8:1 in IPv6. ")
183+
184+
185+
# top label
186+
start1 = tk.Label(text = "IP Address Extractor-Validator", font=("Arial", 50), fg="magenta") # same way bg
187+
start1.place(x = 50, y = 10)
188+
189+
# image on the main window
190+
path = "Images/front_ip.jpg"
191+
# Creates a Tkinter-compatible photo image, which can be used everywhere Tkinter expects an image object.
192+
img1 = ImageTk.PhotoImage(Image.open(path))
193+
# The Label widget is a standard Tkinter widget used to display a text or image on the screen.
194+
panel = tk.Label(window, image = img1)
195+
panel.place(x = 120, y = 130)
196+
197+
# created start button
198+
startb = Button(window, text="START",command=start_fun,font=("Arial", 25), bg = "light green", fg = "blue", borderwidth=3, relief="raised")
199+
startb.place(x =90 , y =600 )
200+
201+
# created details button
202+
detailsb = Button(window, text="DETAILS",command=details_fun,font=("Arial", 25), bg = "orange", fg = "blue", borderwidth=3, relief="raised")
203+
detailsb.place(x =420 , y =600 )
204+
205+
# function for exiting
206+
def exit_win():
207+
if mbox.askokcancel("Exit", "Do you want to exit?"):
208+
window.destroy()
209+
210+
# created exit button
211+
exitb = Button(window, text="EXIT",command=exit_win,font=("Arial", 25), bg = "red", fg = "blue", borderwidth=3, relief="raised")
212+
exitb.place(x =800 , y =600 )
213+
214+
215+
window.protocol("WM_DELETE_WINDOW", exit_win)
216+
window.mainloop()
114 KB
Loading[フレーム]
91.1 KB
Loading[フレーム]
113 KB
Loading[フレーム]
83.6 KB
Loading[フレーム]
111 KB
Loading[フレーム]
144 KB
Loading[フレーム]
103 KB
Loading[フレーム]
114 KB
Loading[フレーム]
110 KB
Loading[フレーム]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /