ตารางทั้งหมดที่มีอยู่ในแผ่นโกงจะแสดงในตารางด้านล่างซึ่งง่ายต่อการคัดลอกและวาง.
เอกสารการเขียนโปรแกรมเครือข่ายหลาม ปก:
- โมดูลการติดตั้งทั่วไปที่จำเป็น: PIP และ IDLE
- หลามเครือข่ายการเขียนโปรแกรมห้องสมุดบนสุด
- Network forensics: python ไลบรารีและสคริปต์ที่จำเป็น
- คำสำคัญหลาม
- ประเภทข้อมูลผู้ประกอบการทางคณิตศาสตร์
- การวิเคราะห์เครือข่ายด้วย Python
- ไลบรารี dnspython
- Socket Module (อินเตอร์เฟส Berkley API)
- ประเภทซ็อกเก็ตการสร้างซ็อกเก็ต
- ตัวอย่างซ็อกเก็ต
- ตัวอย่างสคริปต์
- แยกโมดูล
ดูหรือดาวน์โหลดภาพ JPG ของ Cheat Sheet
คลิกขวาที่ภาพ ด้านล่างเพื่อบันทึกไฟล์ JPG (กว้าง 2530 x 2362 สูงเป็นพิกเซล) หรือคลิกที่นี่เพื่อเปิดในแท็บเบราว์เซอร์ใหม่ เมื่อรูปภาพเปิดขึ้นในหน้าต่างใหม่คุณอาจต้องคลิกที่ภาพเพื่อซูมเข้าและดู jpeg ขนาดเต็ม.
ดูหรือดาวน์โหลดไฟล์ PDF แผ่นชีท
ดาวน์โหลดไฟล์ PDF แผ่นชีทที่นี่ เมื่อมันเปิดขึ้นในแท็บเบราว์เซอร์ใหม่เพียงคลิกขวาที่ PDF และไปที่เมนูดาวน์โหลด.
สิ่งที่รวมอยู่ในสูตรโกงนี้
หมวดหมู่และรายการต่อไปนี้รวมอยู่ในสูตรโกง:
โมดูลการติดตั้งทั่วไปที่จำเป็น: PIP และ IDLE
PIP (ตัวติดตั้งแพ็คเกจ Python) | $ sudo apt-get install python-pip |
IDLE (การพัฒนาแบบบูรณาการและสภาพแวดล้อมการเรียนรู้) | $ sudo apt-get install ว่าง |
หลามเครือข่ายการเขียนโปรแกรมห้องสมุดบนสุด
Django | Python Web framework ระดับสูงเพื่อการพัฒนาอย่างรวดเร็วและในทางปฏิบัติ |
pycos (asyncoro เดิม) | Python framework สำหรับอะซิงโครนัสพร้อมกันเครือข่ายการเขียนโปรแกรมแบบกระจายและการคำนวณแบบกระจาย |
ดีเซล | API สะอาดสำหรับการเขียนไคลเอนต์เครือข่ายและเซิร์ฟเวอร์ รองรับ TCP และ UDP ลูกค้ารวมกลุ่มสำหรับ HTTP, DNS, Redis, Riak และ MongoDB. |
พูลสาร์ | วิธีง่ายๆในการสร้างโปรแกรมเครือข่ายที่ปรับขนาดได้ |
เป๋ | เฟรมเวิร์กอิงเหตุการณ์สำหรับแอปพลิเคชันอินเทอร์เน็ต: ไคลเอนต์ HTTP และเซิร์ฟเวอร์, SSHv2 และ Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP, ฯลฯ. |
ลูกระเบิดเชื้อเพลิง | Network Automation และความสามารถในการโปรแกรมได้ Abstraction Layer พร้อมรองรับ Multivendor – สำหรับจัดการกับผู้ขาย dvice |
gevent | ไลบรารีเครือข่าย Python ของ coroutine ที่ใช้กรีนเล็ตเพื่อให้ API ซิงโครนัสระดับสูงด้านบนของเหตุการณ์วง libev หรือ libuv |
ผักชีฝรั่ง | คิวงานแบบอะซิงโครนัส / คิวงานตามการส่งข้อความแบบกระจาย |
Network forensics: python ไลบรารีและสคริปต์ที่จำเป็น
เครื่องมือ EDDIE | เอเจนต์การตรวจสอบระบบและเครือข่ายความปลอดภัยและเอเจนต์การวิเคราะห์ประสิทธิภาพสำหรับงู |
pypcap | เครื่องมือการจับแพ็คเก็ตขนาดเล็กโดยใช้ python และ pcap |
Paramiko | การใช้งานโปรโตคอล SSHv2 ซึ่งให้ทั้งการทำงานของไคลเอนต์และเซิร์ฟเวอร์ |
จุดเล็ก ๆ | แพ็คเกจติดตั้งสำหรับไพ ธ อน |
Python แพ็คเกจดัชนี (PyPI) | คลังเก็บซอฟต์แวร์สำหรับ Python |
คำสำคัญหลาม
>>> คำหลักนำเข้า >>> พิมพ์ (keyword.kwlist) |
Python 2.7.15+ [‘และ’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘ดำเนินการต่อ’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘ยกเว้น’, ‘exec’, ‘ ในที่สุด ‘,’ สำหรับ ‘,’ จาก ‘,’ ทั่วโลก ‘,’ ถ้า ‘,’ นำเข้า ‘,’ ใน ‘,’ คือ ‘,’ แลมบ์ดา ‘,’ ไม่ ‘,’ หรือ ‘,’ ผ่าน ‘,’ พิมพ์ ‘ , ‘เพิ่ม’, ‘กลับมา’, ‘ลอง’, ‘ในขณะที่’, ‘กับ’, ‘ผลผลิต’] |
Python 3.8.0 [‘เท็จ’, ‘ไม่มี’, ‘จริง’, ‘และ’, ‘เป็น’, ‘ยืนยัน’, ‘async’, ‘รอ’, ‘หยุด’, ‘คลาส’, ‘ดำเนินการต่อ’, ‘def’, ‘ del ‘,’ elif ‘,’ else ‘,’ ยกเว้น ‘,’ สุดท้าย ‘,’ for ‘,’ จาก ‘,’ global ‘,’ if ‘,’ import ‘,’ in ‘,’ in ‘,’ lambda ‘ , ‘nonlocal’, ‘ไม่’, ‘หรือ’, ‘ผ่าน’, ‘เพิ่ม’, ‘กลับ’, ‘ลอง’, ‘ลอง’, ‘ในขณะที่’, ‘กับ’, ‘ผลผลิต’] |
ประเภทข้อมูล
ข้อความ | str – x = "สวัสดีชาวโลก" |
เป็นตัวเลข | int, float, complex |
ลำดับ | รายการ tuple ช่วง |
การทำแผนที่ | Dict |
ชุด | ตั้งค่าจำนวนมาก |
บูลีน | บูล |
ไบนารี่ | ไบต์, bytearray, memoryview |
ผู้ประกอบการทางคณิตศาสตร์
** | ตัวแทน 4 ** 2 = 16 |
% | โมดูลัส / ส่วนที่เหลือ 43% 5 = 3 |
// | การแบ่งจำนวนเต็ม 11 // 5 = 2 |
/ | แผนก 11/5 = 2.2 |
* * * * | การคูณ 3 * 3 = 9 |
– | การลบ 8 – 3 = 5 |
+ | ส่วนที่เพิ่มเข้าไป 2 + 2 = 4 |
== | เท่ากับ |
!= | ไม่เท่ากับ |
< | น้อยกว่า |
> | มากกว่า |
<= | น้อยกว่าหรือเท่ากับ |
>= | มากกว่าหรือเท่ากับ |
ความคิดเห็น
# | สามารถใช้ที่จุดเริ่มต้นของบรรทัดหรือจากภายในบรรทัดไปยังจุดสิ้นสุดของบรรทัด |
การวิเคราะห์เครือข่ายด้วย Python
ใช้ NMAP กับเครื่องสแกนพอร์ต | $ pip ติดตั้ง python-nmap |
คำสั่งให้เรียกใช้การสแกน NMAP | นำเข้า nmap nmScan = nmap.PortScanner () nmScan.scan (’10 .1.0.0 ‘, ’25 -443’) |
คำสั่ง NMAP ใช้กับ python | nmScan.scaninfo () # {‘tcp’: {‘services’: ‘25 -80 ’,’ method ‘:’ เชื่อมต่อ ‘}} nmScan.all_hosts () nmScan [’10 .1.0.0′ ]. ชื่อโฮสต์ () nmScan [’10 .1.0.0′ ]. รัฐ () nmScan [’10 .1.0.0′ ]. all_protocols () nmScan [’10 .1.0.0 ‘] [‘ tcp ‘]. keys () # ผลลัพธ์ – [80, 25, 22, 135] nmScan [’10 .1.0.0 ‘]. has_tcp (25) # ผลลัพธ์จริง / เท็จ nmScan [’10 .1.0.0 ‘]. has_tcp (21) # ผลลัพธ์เท็จ / จริง |
ไลบรารี dnspython
การติดตั้ง | $ pip ติดตั้ง dnspython |
แบบสอบถาม DNS พื้นฐาน | นำเข้า dns.resolver ชื่อ = ‘google.com’ สำหรับ qtype ใน ‘A’, ‘AAAA’, ‘MX’, ‘NS’, ‘TXT’, ‘SOA’: answer = dns.resolver.query (ชื่อ, qtype, boost_on_no_answer = False) ถ้า answer.rrset ไม่ใช่ None: พิมพ์ (answer.rrset) |
รับการกำหนดเป้าหมาย MX และการตั้งค่าชื่อ | นำเข้า dns.resolver answer = dns.resolver.query (‘dnspython.org’, ‘MX’) |
Socket Module (อินเตอร์เฟส Berkley API)
ฟังก์ชั่นหลักวิธีการ | ซ็อกเก็ต () • ind () •ฟัง () •ยอมรับ () •เชื่อมต่อ () • connect_ex () •ส่ง () • recv () •ปิด () |
ประเภทซ็อกเก็ต
SOCK_STREAM | สำหรับโปรโตคอล TCP •การส่งที่เชื่อถือได้•ลำดับแพ็คเก็ต•การเชื่อมต่อที่มุ่งเน้น•แบบสองทิศทาง |
SOCK_DGRAM | สำหรับโปรโตคอล UDP •การส่งข้อมูลที่ไม่น่าเชื่อถือ•ไม่มีลำดับของแพ็กเก็ต•การเชื่อมต่อ (UDP) •ไม่ใช่แบบสองทิศทาง |
การสร้าง Sockets
import socket # นำเข้าวิธีการ socket socket.socket () # ฟังก์ชั่นที่สร้างซ็อกเก็ต | |
ซ็อกเก็ต = ซ็อกเก็ต (ตระกูลซ็อกเก็ตประเภทซ็อกเก็ตโปรโตคอล = ค่า) | |
ครอบครัวซ็อกเก็ต | AF_UNIX หรือ AF_INET |
ประเภทซ็อกเก็ต | SOCK_STREAM หรือ SOCK_DGRAM สำหรับ TCP & UDP ตามลำดับ • เช่น. TCP – UDP2 = ซ็อกเก็ต ซ็อกเก็ต (socket.AF_INET, ซ็อกเก็ต SOCK_DGRAM) • เช่น. UDP – TCP2 = ซ็อกเก็ต ซ็อกเก็ต (socket.AF_INET, ซ็อกเก็ต SOCK_STREAM) |
วิธีการซ็อกเก็ตลูกค้า | () เชื่อมต่อ |
วิธีซ็อกเก็ตเซิร์ฟเวอร์ | ผูก () •ฟัง (ค้าง) •ยอมรับ () |
วิธีซ็อกเก็ต TCP | s.recv () # รับแพ็กเก็ต TCP s.send () #Send แพ็กเก็ต TCP |
วิธีซ็อกเก็ต UDP | s.recvfrom () # รับแพ็กเก็ต UDP s.sendto () # ส่งแพ็กเก็ต UDP |
วิธีการซ็อกเก็ตเพิ่มเติม | |
ปิด() | ปิดการเชื่อมต่อซ็อกเก็ต |
getHostName () | ส่งคืนสตริงซึ่งรวมถึงชื่อโฮสต์ของพีซีปัจจุบัน |
gethostbyname () | ส่งคืนสตริงซึ่งรวมถึงชื่อโฮสต์และที่อยู่ IP ของพีซีปัจจุบัน |
ฟัง() | ติดตั้งและเริ่มฟัง TCP |
ผูก() | แนบ (ชื่อโฮสต์หมายเลขพอร์ต) เข้ากับซ็อกเก็ต |
ยอมรับ() | การเชื่อมต่อไคลเอ็นต์ TCP รอ |
() เชื่อมต่อ | เริ่มต้นการเชื่อมต่อเซิร์ฟเวอร์ TCP |
วิธีการซ็อกเก็ต TCP | |
mysocket.accept () | ส่งคืน tuple ด้วยที่อยู่ระยะไกลที่เชื่อมต่อ |
mysocket.bind (ที่อยู่) | แนบที่อยู่ท้องถิ่นที่ระบุไว้กับซ็อกเก็ต |
mysocket.connect (ที่อยู่) | ข้อมูลที่ส่งผ่านซ็อกเก็ตกำหนดให้กับที่อยู่ระยะไกลที่กำหนด |
mysocket.getpeername () | ส่งคืนที่อยู่ระยะไกลที่เชื่อมต่อซ็อกเก็ต |
mysocket.getsockname () | ส่งคืนที่อยู่ของจุดปลายทางท้องถิ่นของซ็อกเก็ต
|
mysocket.sendto (ข้อมูลที่อยู่) | บังคับให้แพ็กเก็ตข้อมูลไปยังที่อยู่ระยะไกลที่เฉพาะเจาะจง |
การปิดกั้นซ็อกเก็ต | |
setblocking (1) | ตั้งค่าบล็อก |
setblocking (0) | ลบ / ยกเลิกการติดตั้งบล็อก |
รับหมายเลขพอร์ตโดยใช้ชื่อโดเมน | ซ็อกเก็ตนำเข้า socket.getservbyname (‘ชื่อโดเมน’) |
ตรวจสอบการสนับสนุนสำหรับ IPV6 | ซ็อกเก็ตนำเข้า socket.has_ipv6 # คำตอบคือ TRUE หรือ FALSE |
getaddrinfo () – ผูกเซิร์ฟเวอร์เข้ากับพอร์ต | จากซ็อกเก็ตนำเข้า getaddrinfo getaddrinfo (ไม่มี, ‘FTP’, 0, ซ็อกเก็ต SOCK_STREAM, 0, ซ็อกเก็ต AI_PASSIVE) [(2, 1, 6, ”, (‘0.0.0.0’, 21)), (10, 1, 6, ‘, (‘ :: ‘, 21, 0, 0)) |
ตัวอย่างซ็อกเก็ต
ตัวอย่างซ็อกเก็ตฝั่งไคลเอ็นต์ |
ซ็อกเก็ตนำเข้า s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) โฮสต์ = socket.gethostname () พอร์ต = 1111 myserver.bind ((โฮสต์, พอร์ต)) # replace myserver และ myclient ด้วย IP ที่ทำซ้ำ myserver.ฟัง (5) ในขณะที่ True: myclient,addr = myserver.accept () พิมพ์("เชื่อมต่อกับ {str (addr)}") myclient.ส่ง (msg.encode ("ASCII")) myclient.ปิด() |
ตัวอย่างซ็อกเก็ตฝั่งไคลเอ็นต์พร้อมความคิดเห็น |
# import ไลบรารีซ็อกเก็ต ซ็อกเก็ตนำเข้า # สร้างวัตถุซ็อกเก็ต # สำรองพอร์ตบนคอมพิวเตอร์ซึ่งสามารถเป็นอะไรก็ได้ # ผูกกับพอร์ต # ทำให้ซ็อกเก็ตเข้าสู่โหมดฟัง # วนซ้ำจนกว่าผู้ใช้จะขัดจังหวะหรือมีข้อผิดพลาดเกิดขึ้น # สร้างการเชื่อมต่อกับลูกค้า. # ส่งข้อความขอบคุณไปยังลูกค้า. # ปิดการเชื่อมต่อ |
ตัวอย่างสคริปต์
สร้างรายการอุปกรณ์ |
>>>อุปกรณ์ = [‘SW1’, ‘SW2’, ‘SW3’] |
สร้างรายการพจนานุกรม VLAN |
vlans = [{‘id’: ‘100’, ‘name’: ‘staff’}, {‘id’: ‘200’, ‘name’: ‘VOICE’}, {‘id’: ‘300’, ‘name’: ‘wireless’}]] |
เขียนฟังก์ชั่นเพื่อรวบรวมคำสั่งและกดไปที่เครือข่าย |
>>>def get_commands (vlan, ชื่อ): คำสั่ง = [] บัญชาผนวก (‘vlan’ + vlan) บัญชาผนวก (‘ชื่อ’ + ชื่อ) ส่งคืนคำสั่ง >>> def push_commands (อุปกรณ์คำสั่ง): |
สร้าง VLAN ในสวิตช์หลายอันโดยใช้สคริปต์ไพ ธ อน |
>>>สำหรับ vlan ใน vlans: id = vlan.get (‘id’) name = vlan.get (‘name’) พิมพ์ ( ‘\ n’) พิมพ์ (‘กำหนดค่า VLAN:’ + id) คำสั่ง = get_commands (id, ชื่อ) สำหรับอุปกรณ์ในอุปกรณ์: push_commands (อุปกรณ์คำสั่ง) พิมพ์ ( ‘\ n’) |
การอ้างอิง: https://www.oreilly.com/library/view/network-programmability-and/9781491931240/ch04.html |
ปิดการใช้งานอินเตอร์เฟสเราเตอร์โดยใช้คำสั่ง python |
>>> จากการนำเข้าแบบพุช push_commands อุปกรณ์ = ‘เราเตอร์ 2’ คำสั่ง = [‘อินเตอร์เฟส Eth0 / 1’, ‘ปิดระบบ’] push_commands (อุปกรณ์คำสั่ง) |
แยกโมดูล
argparse () | โมดูล argparse ทำให้ง่ายต่อการเขียนอินเตอร์เฟสบรรทัดคำสั่งที่ใช้งานง่าย โปรแกรมกำหนดว่าต้องใช้อาร์กิวเมนต์อะไรและ argparse จะหาวิธีแยกวิเคราะห์ sys.argv เหล่านั้น |
สร้าง parser | >>> parser = argparse.ArgumentParser (description = ‘ประมวลผลจำนวนเต็ม’) |
การเพิ่มข้อโต้แย้ง | >>> parser.add_argument (‘จำนวนเต็ม’, metavar = ‘N’, พิมพ์ = int, nargs = ‘+’, … help = ‘จำนวนเต็มสำหรับตัวสะสม’) >>> parser.add_argument (‘- ผลรวม’, ปลายทาง = ‘สะสม’, การกระทำ = ‘store_const’, … const = sum, default = max, … help = ‘รวมจำนวนเต็ม (ค่าเริ่มต้น: หาค่าสูงสุด)’) |
การแยกวิเคราะห์ข้อโต้แย้ง | >>> parser.parse_args ([‘- ผลรวม’, ‘7’, ‘-1′, ’42’]) Namespace (accumulate =, integers = [7, -1, 42]) |
Im sorry, I cannot identify the appropriate language for this text. Please provide more context or specify the language.