nt
Emekli
- Katılım
- 21 Nisan 2023
- Mesajlar
- 1,215
Selam!
Geliştirdiğim otomatik ağ tarayıcıyı sizinle paylaşmak istiyorum. Bu araç, ağınızdaki cihazları tespit etmek için kullanışlıdır.
Geliştirdiğim otomatik ağ tarayıcıyı sizinle paylaşmak istiyorum. Bu araç, ağınızdaki cihazları tespit etmek için kullanışlıdır.
- Kullanıcıdan IP aralığını sormadan otomatik olarak ağı tarar.
- Bulunan cihazları IP ve MAC adresleriyle listeler.
- Kullanıcı dostu bir menü arayüzüne sahiptir.
- 1-2-3 diye seçim yapmanız yeterlidir.
- linuxda sudo ile çalıştırmayı ve firewall kapatmayı unutmayın
Python:
from scapy.all import ARP, Ether, srp
import platform
import os
import netifaces
class NetworkScanner:
def __init__(self):
self.devices = []
def get_local_ip(self):
try:
ip = netifaces.ifaddresses(netifaces.gateways()['default'][netifaces.AF_INET][1])[netifaces.AF_INET][0]['addr']
return ip
except (OSError, KeyError):
return None
def discover_devices(self, ip_range):
arp_request = ARP(pdst=ip_range)
ether_frame = Ether(dst="ff:ff:ff:ff:ff:ff")
packet = ether_frame / arp_request
result = srp(packet, timeout=3, verbose=0)[0]
self.devices = [{'ip': received.psrc, 'mac': received.hwsrc} for sent, received in result]
def print_device_list(self):
print("\nBulunan Cihazlar:")
print("IP Adres\t\tMAC Adres")
print("-----------------------------------------")
for device in self.devices:
print(f"{device['ip']}\t\t{device['mac']}")
def clear_screen(self):
os.system('cls' if platform.system() == 'Windows' else 'clear')
def display_menu(self):
print("\nMekatronik.org Ağ Tarayıcıya Hoş Geldiniz!")
print("1. Cihazları Tara")
print("2. Cihaz Listesini Göster")
print("3. Programdan Çık")
def get_user_choice(self):
choice = input("Seçiminizi yapın (1-3): ")
return choice
def run(self):
while True:
self.clear_screen()
self.display_menu()
choice = self.get_user_choice()
if choice == '1':
local_ip = self.get_local_ip()
if local_ip:
ip_range = local_ip.rsplit('.', 1)[0] + ".1/24"
self.discover_devices(ip_range)
input("Tarama tamamlandı. Devam etmek için Enter'a basın.")
else:
print("Bağlı olduğunuz ağ adaptörünün IP adresi bulunamadı.")
input("Devam etmek için Enter'a basın.")
elif choice == '2':
self.clear_screen()
self.print_device_list()
input("Devam etmek için Enter'a basın.")
elif choice == '3':
print("Programdan çıkılıyor...")
break
else:
print("Geçersiz seçenek. Tekrar deneyin.")
input("Devam etmek için Enter'a basın.")
if __name__ == "__main__":
scanner = NetworkScanner()
scanner.run()
Son düzenleme: