![]() |
Perl - Порт скан
Помогите!
Нужен скрипт для сканирования портов... Плз.. Ну или хотябы принцип работы... ) |
Вернее не принцип работы... ) А через что делать... Проюывал через while... Но зашел в тупик!
|
Через for по диапазону
|
Ладно, объясню полностью:
1. Свернуть айпишники в 1 цифру 2. Цикл фор между этими цифрами 3. В цикле: Развернуть айпишники и выполнить действия(например порты проверять) Это все, что тебе надо(причем детально), если, конечно, ты перл знаешь =) |
Я тока начал изучать перл... )
Непонял следуюзее: 1. Свернуть айпишники в 1 цифру (Всмысле назначить например: $fip = "Тут начальный IP"; и $sip = "Еонечный IP"; ?????? 2. Плохо знаю for (( Наверно надо: for i= 'начальный порт' to 'конечный порт' 3. Какой функицией проверятть IP ??? Использовать Socket? |
Тебе рано этим заниматься.
Типа: Делаю робота. Он почему-то не работает. А что это за штучки-дрючки внутри должны быть? |
nerezus, не согласен про свернуть ip в одну цифру, т.к. будет очень много лишней работы. Чтобы гонять IP-ки по циклу надо сделать вложенные циклы, где конечный IP будет монтироваться из переменных полученных после прогона каждого из вложенных циклов причем:
Всего циклов будет 4 (если речь идет о прогоне диапазона на один порт, вслучае прогона IP на много портов - цикл один и IP конечно монтировать ненадо, вслучае прогона диапазона IP на диапазон портов - циклов еще больше), состовляющие IP-адреса должны изменяться от 0-255. Работа с полученным IP: установить сокетное соединение с данным IP к данному порту. Вслучае неудачи - порт закрыт, вслучаеудачи - открыт, закрыть сокетное соединение и по новой. |
Блин. Берешь айпи, берешь порт начальный и пробуешь соедениться.
Берешь след. порт (увелю на 1) и пробуешь... |
Zadoxlik, не говори глупости
спрашиваешь, почему сворачивать? смотри: прогони от 112.4.6.7 до 112.4.7.1 твоим методом: сколько машин? в четвертом цикле будет от 7 до 1 с шагом +1 сколько это? правильно, ноль поэтому надо свернуть |
Kez, спор как раз на тему "Берешь айпи"
|
Ой, ну ешь нехватало спорить "как взять айпи"...
Берем последнюю цифру, увеличиваем на 1. Потом когда она будет 254 (255, 0 ненадо) то ставим ее в 0 а ПРЕДПОСЛ. цифру увеличиваем на 1... и т д... только смысл, если в маленькой локалке маска подсети 255.255.255.0 часто бывает... |
Это не глупости. Глупости говоришь ты. Прежде чем назвать это глупостью попробуй написать такую программу и посмотри что получится. Глупость про 0 сказал ты. Вероятно ты не понял организации цикла, ведь в самой глубине окажется цикл, гоняющий последний разрят Ip
Единство что внутри каждого цикла надо будет соблюсти одно условие. Но то что говоришь ты - вот так глупость. Зачем скан портов превращать в трехдневное занятие |
Цитата:
Код:
#!/usr/bin/perl -w |
Цитата:
Просто набор текста и уничтожение опечаток. Однако готов посмотреть твой код. Сюда его размести плз., пообсуждаем :) |
Чтото ты накатал кода... Это можно проще написать в несколько строчек...
|
2kez:
Ну тогда ждем твоего варианта! +) |
нерезус, я писать не буду. И непонятно зачем ты написал - ведь и так понятно что хочешь сделать ты и что я. Только я не понимаю как можно не согласиться с моим вариантом, ведь в твоем КПД меньше 50 процентов.
|
Zadoxlik.
В твоем варианте: 1. Надо думать. 2. Возможность появления логической ошибки больше. 3. Вместо 10 строк у меня(разбиение айпи - 1*2, свертывание 1*2, цикл -1, развертка - 4, добавление точек-1) получаем... 9 (разбиение первого айпи - 1, цикл со сравнением со 2 ипом -1, условие - 1*3, действия при условии 1*3, добавление точек). Однако всего 1 строчка разницы. И затраты на твой по времени больше. |
затраты на что ? На написание?
Все больше писать тут не буду. Повторяться только и тебе и мне |
| Время: 05:56 |