มีวิธีง่ายๆในการค้นหา IP ทั้งหมดที่ Facebook, Myspace, Snapchat และอื่น ๆ ใช้หรือไม่?
การใช้ Facebook เป็นตัวอย่าง ... เราใช้แบนด์วิดท์ของพวกเขาเพียงเล็กน้อยใน ASA ของเรา (เพราะอีกกลุ่มหนึ่งใน บริษัท เป็นเจ้าของเว็บพร็อกซี)
ปกติฉันจะค้นหา ASN ของ บริษัท (Facebook คือ 32934) จากนั้นฉันไปที่http://as.robtex.com/as32934.html#bgp
และค้นหาคำนำหน้าของพวกเขา
จากรายการนั้นฉันสร้างกลุ่มวัตถุ Cisco ASA ซึ่งฉันสามารถใช้เพื่อจำแนกการรับส่งข้อมูล ... นี่คือสิ่งที่ฉันใช้ตอนนี้ ... Facebook ถูกบีบให้แบนด์วิดท์เล็กน้อย ... มันใช้งานได้ดีมาก
บ่อยครั้งคุณจะต้องย้อนกลับไปตรวจสอบข้อมูลของ robtex เพื่อดูว่าพวกเขาได้เพิ่มหรือลบคำนำหน้าหรือไม่ ฉันมักจะพยายามที่จะใช้บล็อกมวลรวมที่ใหญ่ที่สุดที่มีแม้ว่าพวกเขาจะประกาศเพียงบล็อกเล็ก ๆ จากมวลรวมที่มีขนาดใหญ่กว่านั้น
object-group AS32934_Facebook
network-object 31.13.24.0 255.255.248.0
network-object 31.13.64.0 255.255.192.0
network-object 66.220.144.0 255.255.240.0
network-object 69.63.176.0 255.255.240.0
network-object 69.171.224.0 255.255.224.0
network-object 74.119.76.0 255.255.252.0
network-object 103.4.96.0 255.255.252.0
network-object 173.252.64.0 255.255.192.0
network-object 204.15.20.0 255.255.252.0
รหัสหลามที่ฉันใช้ในการสร้างรายการเป็นเรื่องเล็กน้อย ...
from ipaddr import IPv4Network, CollapseAddrList
fb_nets = list()
with open('facebook_nets.txt') as fh:
for line in fh:
net = IPv4Network(line.strip())
fb_nets.append(net)
print "object-group AS32934_Facebook"
for net in sorted(CollapseAddrList(fb_nets)):
print " network-object %s %s" % (net.network, net.netmask)
รหัสจะถือว่าคุณใส่คำนำหน้าทั้งหมดในไฟล์ข้อความชื่อ "facebook_nets.txt" โดยมีหนึ่งคำนำหน้าต่อบรรทัด ...
(py26_dfl)[mpenning@Bucksnort ~]$ head facebook_nets.txt
31.13.24.0/21
31.13.64.0/18
31.13.64.0/19
31.13.64.0/24
31.13.65.0/24
31.13.66.0/24
31.13.67.0/24
31.13.68.0/24
31.13.69.0/24
31.13.70.0/24
(py26_dfl)[mpenning@Bucksnort ~]$
ที่จริงแล้วสคริปต์ของฉันทำการตรวจสอบข้อมูลโดยอัตโนมัติทุกสัปดาห์ แต่นี่เป็นเวอร์ชันที่เรียบง่าย