IP va prefiks
IPv4 32 bitdan iborat. /24 dastlabki 24 bit tarmoq qismi ekanini bildiradi. 192.168.56.0/24 xususiy laboratoriya tarmog‘i sifatida ishlatilishi mumkin, lekin xususiy IP ham avtomatik ruxsat degani emas.
Python bilan hisoblash
ip_address manzilni validatsiya qiladi, ip_network tarmoqni yaratadi. ip in network a’zolikni tekshiradi. Oddiy satr prefiksini solishtirish noto‘g‘ri: 192.168.1 va 192.168.10 aralashib ketishi mumkin. IPv6 uchun ham shu kutubxona ishlaydi.
Tarmoq chegarasi
Subnet scope ro‘yxatining bir qismi bo‘lishi mumkin, lekin domen yechimi va redirect’lar manzilni o‘zgartiradi. SSRF himoyasi faqat bitta dastlabki IP tekshiruvi bilan tugamaydi. Dars hech qanday paket jo‘natmaydi; faqat manzillar ustida matematik amal bajaradi.
Python’da ko‘rib chiqamiz
from ipaddress import ip_address, ip_network
scope = ip_network("192.168.56.0/24")
addresses = ["192.168.56.10", "192.168.57.1", "192.168.56.200"]
print(sum(ip_address(a) in scope for a in addresses))Misolni
Mustaqil mashq
/30 tarmoq uchun network, broadcast va hosts ro‘yxatini chiqaring. Yaroqsiz IP uchun ValueError’ni boshqaring. IPv6 manzilini alohida tekshiring.