Зачем? Тут не форум русского языка.Буду признателен если найдете орфографические ошибки.
У Вас в код попал бибикод
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Отвечаю сразу: А затем, чтобы вырваться из объятий ламера и уметь самомуЗачем писать если есть nmap?
А вот теперь поговорим про закрытые порты и открытые порты.Постараюсь обойтись без терминов. Представьте себе реальный порт(те что с кораблями). Так вот корабль это определенный кусок данных(пакет), он движется по определенному пути(каналу) к определенному порту. В этом порту с ним произойдет какие либо действия. Этот карабль(пакет) могут разгрузить(получить ланные) , а могут послать подальше если порт закрыт на ремонт.
Порт закрыт - это значит что установить соединение с этим портом нельзя.
Разберемся пока что с этим. Вернемся к обсуждению алгоритма работы нашего простенького сканера.Открытый порт - аналогично, это порт с которым можно установить соединение и обменятся информацией.
1. Спрашивает тип.
2. Спрашивает данные.
3. Создает сокет
4. Подключается к host:port
5. Определяет открыт или закрыт.
6. Красиво выводит)
Приступим к написанию нашего кода.Сокет - коротко говоря, интерфейс для обмена данными между устройствами.
from termcolor import colored
import socket
...
print("~"*50)
print("\t[1] --- сканировать отделный порт")
print("\t[2] --- сканировать список")
print("~"*50, "\n")
text_a = input("[scan]--> ")
if text_a == "1":
fanc1()
elif text_a == "2":
fanc2()
else:
print(colored("Параметр введен не правильно!", 'red'))
...
color_a = colored("[+] ", 'green')
print("~"*50)
host = input(color_a + "Host --> ")
port = int(input(color_a + "Port --> "))
print("~"*50)
scan = socket.socket()
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
try:
scan.connect((host, port))
except scan.error:
print(color_b + "Port -- ", port, " -- [CLOSED]")
else:
print(color_c + "Port -- ", port, " -- [OPEN]")
def fanc1():
color_a = colored("[+] ", 'green')
print("~"*50)
host = input(color_a + "Host --> ")
port = int(input(color_a + "Port --> "))
print("~"*50)
scan = socket.socket()
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
try:
scan.connect((host, port))
except scan.error:
print(color_b + "Port -- ", port, " -- [CLOSED]")
else:
print(color_c + "Port -- ", port, " -- [OPEN]")
def fanc2():
color_a = colored("[+] ", 'green')
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
host = input(color_a + "Host --> ")
port = [20, 21, 22, 23, 42, 43, 53, 67, 69, 80]
...
for i in port:
try:
scan = socket.socket()
scan.connect((host, i))
except scan.error:
print(color_b + "Port -- ", i, " -- [CLOSED]\n")
else:
print(color_c + "Port -- ", i, " -- [OPEN]\n")
def fanc2():
color_a = colored("[+] ", 'green')
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
host = input(color_a + "Host --> ")
port = [20, 21, 22, 23, 42, 43, 53, 67, 69, 80]
for i in port:
try:
scan = socket.socket()
scan.settimeout(0.5)
scan.connect((host, i))
except scan.error:
print(color_b + "Port -- ", i, " -- [CLOSED]")
else:
print(color_c + "Port -- ", i, " -- [OPEN]")
scan.settimeout(0.5)
# -*- coding:utf -8 -*-
from termcolor import colored
import socket
def fanc1():
color_a = colored("[+] ", 'green')
print("~"*50)
host = input(color_a + "Host --> ")
port = int(input(color_a + "Port --> "))
print("~"*50)
scan = socket.socket()
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
try:
scan.connect((host, port))
except socket.error:
print(color_b + "Port -- ", port, " -- [CLOSED]")
else:
print(color_c + "Port -- ", port, " -- [OPEN]")
def fanc2():
color_a = colored("[+] ", 'green')
color_b = colored("[!] ", 'red')
color_c = colored("[!] ", 'yellow')
host = input(color_a + "Host --> ")
print("\n")
port = [20, 21, 22, 23, 42, 43, 53, 67, 69, 80]
for i in port:
try:
scan = socket.socket()
scan.settimeout(0.5)
scan.connect((host, i))
except socket.error:
print(color_b + "Port -- ", i, " -- [CLOSED]")
else:
print(color_c + "Port -- ", i, " -- [OPEN]")
print("~"*50)
print("\t[1] --- сканировать отделный порт")
print("\t[2] --- сканировать список")
print("~"*50, "\n")
text_a = input("[scan]--> ")
if text_a == "1":
fanc1()
elif text_a == "2":
fanc2()
else:
print(colored("Параметр введен не правильно!", 'red'))
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Зачем? Тут не форум русского языка.Буду признателен если найдете орфографические ошибки.
О, благодарю!
Только не сканируйте по ру xDпросканируйте порты любого сата))
Там же написано, что это будет большой цикл))Надеюсь у Автора хватит энтузиазма на цикл статей. Здорово, что все наглядно и с примерами. Ну и "...порты любого саЙта.." .
Мало ли, что там написано? Может на 3й статье свободное время или энтузиазм иссякнет, т.к. написание и оформление статей требуют времени и сил.Там же написано, что это будет большой цикл))
У меня почему-то возникло желание добавить свои комментарии к статье и тем самым дополнить предыдущие ))
Во-первых, хочется поблагодарить автора за старания, за хорошие начинания.
Хочется надеяться, что он не забросит цикл статей, не остановится на пол-пути, так как "цикл статей" - дело непростое ))
В то-же время, на мой взгляд, правила русского языка в подобных статьях играют ничуть не меньшую роль, чем правила языка программирования : ведь статья носит обучающий характер.
Появление в статье Би-Би-кодов также может восприниматься новичками как код языка программирования и вводить в заблуждение.
В подобных статьях не бывает мелочей.
Упомянутые "мелочи" создают картину уровня преподавания, рисуют представление о профессионализме автора и ещё много о чём...
Ещё один момент непонятен.
Одновременно с этой, автор пишет цикл статей под заголовком "Учим Python."
Признаюсь, я читаю их с интересом)
В случае, если данная статья является продолжением упомянутого цикла, то имеет место огромный пробел в преподавании.
В частности, от операторов цикла сразу состоялся переход к функциям без должной подготовки читателей (
Этот пробел в знаниях неплохо было-бы заполнить ))
Но, в случае, если статьи представляют параллели, то последнее моё замечание - не актуально.
Преподавание - дело непростое ))
В остальном хочется ещё раз поблагодарить автора за прекрасное начинание - и это главное.
except scan.error:
Как в "Операция "Ы"", чтобы никто не догадался.Но даже если нет, то почему fanc1, а не func1
color_a = colored("[+] ", 'green')
Что же мне интересно тебе не понравилось в переменных?)Как в "Операция "Ы"", чтобы никто не догадался.
Названия переменных тоже не информативны.
Код:color_a = colored("[+] ", 'green')
Потому что автор любит случайный набор букв схожый с другими словами)Всем доброго времени суток. Это мой первый пост на этом форуме. Статья суппер. Жду продолжения.
Но есть и нюансы. Не хочу прослыть занудой, но раз был вопрос про правописание, то может тогда и функции можно называть по-человечески? Но даже если нет, то почему fanc1, а не func1
В описании 2й функции ошибка закралась
Код:except scan.error:
except socket.error:
...
Просто, если посмотреть, например, наЧто же мне интересно тебе не понравилось в переменных?)
print(color_b + "Port -- ", port, " -- [CLOSED]")
И не информативно. Название ф-и должно говорить, что она делает.Я хотел func, но это примитивно.
Комментарии
87