У світі комп'ютерних мереж портовий сканер є важливим інструментом для виявлення відкритих портів на віддалених системах. Це може бути корисно для адміністраторів мереж, фахівців з безпеки та навіть для тих, хто просто хоче дізнатися більше про свою мережу. У цій статті ми розглянемо, як створити простий портовий сканер на мові програмування Ruby. Ми пройдемо через основи, розглянемо код і надамо кілька порад для покращення нашого сканера.
Портовий сканер — це інструмент, який перевіряє доступність портів на віддаленій машині. Кожен комп'ютер у мережі має унікальну IP-адресу, а порти використовуються для зв'язку між різними сервісами. Наприклад, веб-сервери зазвичай слухають на порту 80 (HTTP) або 443 (HTTPS). Сканування портів може допомогти виявити, які сервіси працюють на віддаленій машині, а також виявити потенційні вразливості.
Перед тим, як почати, важливо мати базові знання про Ruby. Ruby — це об'єктно-орієнтована мова програмування, яка відома своєю простотою та елегантністю. Якщо ви новачок у Ruby, рекомендуємо ознайомитися з основами, такими як змінні, цикли та методи.
Якщо у вас ще не встановлений Ruby, ви можете завантажити його з офіційного сайту ruby-lang.org. Для користувачів Windows рекомендується використовувати RubyInstaller, а для користувачів macOS — Homebrew.
Тепер, коли у нас є Ruby, давайте створимо простий портовий сканер. Ми будемо використовувати стандартну бібліотеку Ruby для роботи з мережами.
Ось базовий код для нашого портового сканера:
require 'socket' def scan_ports(ip, ports) open_ports = [] ports.each do |port| begin socket = Socket.new(:INET, :STREAM) socket.connect(Socket.sockaddr_in(port, ip)) open_ports << port socket.close rescue Errno::ECONNREFUSED # Порт закритий rescue Errno::ETIMEDOUT # Тайм-аут rescue => e puts "Помилка: #{e.message}" end end open_ports end ip_address = '127.0.0.1' # Змініть на IP-адресу, яку ви хочете сканувати ports_to_scan = (1..1024).to_a # Сканування портів з 1 по 1024 open_ports = scan_ports(ip_address, ports_to_scan) puts "Відкриті порти на #{ip_address}: #{open_ports.join(', ')}"
Давайте розглянемо, як працює наш портовий сканер:
Щоб запустити наш портовий сканер, збережіть код у файл з розширенням .rb, наприклад, port_scanner.rb. Потім відкрийте термінал і виконайте команду:
ruby port_scanner.rb
Ви повинні побачити список відкритих портів на вказаній IP-адресі.
Наш базовий портовий сканер працює, але є кілька способів його покращити:
Створення портового сканера на Ruby — це чудовий спосіб навчитися основам мережевого програмування та покращити свої навички програмування. Хоча наш сканер є простим, він може бути основою для більш складних проектів. Не забувайте, що сканування портів може бути незаконним без дозволу власника системи, тому завжди дотримуйтесь етики та законодавства.
Сподіваємося, що ця стаття була корисною для вас, і ви зможете створити свій власний портовий сканер на Ruby. Успіхів у програмуванні!
© 2024 RailsInsights. All rights reserved.