Простой сканер определённого порта у диапозона IP

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
# -*- coding: cp1251 -*-
# Простой сканер портов у определённого диапозона IP адресов.
# created by inlanger
import socket
import ipaddr #Брать тут - http://code.google.com/p/ipaddr-py/
from Tkinter import *
# Основная функция программы
def Func():
a = int(ipaddr.IP(firstip.get()))
b = int(ipaddr.IP(secondip.get()))
port = portW.get()
while a<=b:
ipWithMask = ipaddr.IPv4(a)
HOST=ipWithMask.ip_ext
port=int(port)
a=a+1
print "Connect to ",HOST," on ",port," port"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((HOST, port))
sock.settimeout(1)
result = sock.recv(1024)
print "DONE !", result
except:
print "Fail..."
continue
sock.close()
# Конец функции
# Создание основных элементов формы
window = Tk()
window.title(u'Сканер портов')
label = Label(window, text = u'Введите диапозон IP адресов для сканирования').grid(columnspan=4)
# Первая строка для ввода IP
firstip = Entry(window)
firstip.insert(0, '91.203.4.26')
firstip.grid(row=1, column=0)
# Вторая строка для ввода IP
secondip = Entry(window)
secondip.insert(0, '91.203.5.26')
secondip.grid(row=1, column=1)
# Строка ввода порта
portW = Entry(window, width=4)
portW.insert(0, '110')
portW.grid(row=1, column=2)
# Кнопка
button = Button(window, text = u'Начать сканирование', command=Func).grid(row=1, column=3)
window.mainloop()