Bảng cheat lập trình mạng Python

Tất cả các bảng được cung cấp trong các bảng cheat cũng được trình bày trong các bảng dưới đây để dễ dàng sao chép và dán.

Các Bảng cheat lập trình mạng Python bao gồm:

  • Các mô-đun cài đặt phổ biến cần thiết: PIP và IDLE
  • Thư viện lập trình mạng python hàng đầu
  • Network forensics: Thư viện và kịch bản python cần thiết
  • Từ khóa Python
  • Kiểu dữ liệu, toán tử toán học
  • Phân tích mạng với Python
  • Thư viện dnspython
  • Module cắm (giao diện Berkley API)
  • Các loại ổ cắm, tạo ổ cắm
  • Ví dụ về socket
  • Ví dụ về kịch bản
  • Mô-đun phân tích cú pháp

Xem hoặc tải xuống hình ảnh Cheat Sheet JPG

Nhấp chuột phải vào hình ảnh bên dưới để lưu tệp JPG (chiều rộng 1987 x 2362 chiều cao tính bằng pixel) hoặc nhấp vào đây để mở tệp trong tab trình duyệt mới. Khi hình ảnh mở trong một cửa sổ mới, bạn có thể cần phải nhấp vào hình ảnh để phóng to và xem jpeg kích thước đầy đủ.

Xem hoặc tải xuống tệp PDF cheat sheet

Tải tập tin PDF cheat sheet tại đây. Khi nó mở trong tab trình duyệt mới, chỉ cần nhấp chuột phải vào tệp PDF và điều hướng đến menu tải xuống.

Những gì có bao gồm trong gian lận này

Các danh mục và mục sau đây đã được đưa vào bảng cheat:

Các mô-đun cài đặt phổ biến cần thiết: PIP và IDLE

PIP (Trình cài đặt gói Python)

$ sudo apt-get cài đặt python-pip

IDLE (Môi trường học tập và phát triển tích hợp)

$ sudo apt-get cài đặt nhàn rỗi

Thư viện lập trình mạng python hàng đầu

Django

Khung Web Python cấp cao để phát triển nhanh và thực dụng

pycos (trước đây là asyncoro)

Khung Python cho không đồng bộ, đồng thời, mạng, lập trình phân tán và tính toán phân tán

Dầu diesel

Một API sạch để viết các máy khách và máy chủ mạng. Hỗ trợ TCP và UDP. Gói ứng dụng khách cho HTTP, DNS, Redis, Riak và MongoDB.

Pulsar

Cách dễ dàng để xây dựng các chương trình mạng có thể mở rộng

Xoắn

Khung dựa trên sự kiện cho các ứng dụng internet: máy khách và máy chủ HTTP, SSHv2 và Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP, v.v..

NAPALM

Lớp trừu tượng hóa tự động hóa và lập trình mạng với sự hỗ trợ của Multivendor – Để giao dịch với các nhà cung cấp dvice

tham lam

Thư viện mạng Python dựa trên coroutine sử dụng greenlet để cung cấp API đồng bộ cấp cao ở đầu vòng lặp sự kiện libev hoặc libuv

Rau cần tây

Hàng đợi nhiệm vụ không đồng bộ / hàng đợi công việc dựa trên việc truyền thông điệp phân tán

Network forensics: Thư viện và kịch bản python cần thiết

Công cụ EDDIE

Giám sát hệ thống và bảo mật mạng, bảo mật và phân tích hiệu suất cho python

pypcap

Công cụ chụp gói nhỏ dựa trên python và pcap

Paramiko

Triển khai giao thức SSHv2, cung cấp cả chức năng máy khách và máy chủ

pip

Gói cài đặt cho python

Chỉ mục gói Python (PyPI)

Kho lưu trữ phần mềm cho Python

Từ khóa Python

>>> nhập từ khóa
>>> in (keyword.kwlist)

Python 2.7.15+ [‘và’, ‘như’, ‘khẳng định’, ‘phá vỡ’, ‘lớp’, ‘tiếp tục’, ‘def’, ‘del’, ‘elif’, ‘khác’, ‘ngoại trừ’, ‘exec’, ‘ cuối cùng ‘,’ cho ‘,’ từ ‘,’ toàn cầu ‘,’ nếu ‘,’ nhập ‘,’ trong ‘,’ là ‘,’ lambda ‘,’ không ‘,’ hoặc ‘,’ vượt qua ‘,’ in ‘ , ‘nâng cao’, ‘trở lại’, ‘thử’, ‘trong khi’, ‘với’, ‘suất’]

Python 3.8.0 [‘Sai’, ‘Không’, ‘Đúng’, ‘và’, ‘như’, ‘khẳng định’, ‘không đồng bộ’, ‘chờ đợi’, ‘phá vỡ’, ‘lớp’, ‘tiếp tục’, ‘def’, ‘ del ‘,’ elif ‘,’ other ‘,’ ngoại trừ ‘,’ cuối cùng ‘,’ cho ‘,’ từ ‘,’ toàn cầu ‘,’ nếu ‘,’ nhập ‘,’ trong ‘,’ là ‘,’ lambda ‘ , ‘không nhắm mục tiêu’, ‘không’, ‘hoặc’, ‘vượt qua’, ‘nâng cao’, ‘trở lại’, ‘thử’, ‘trong khi’, ‘với’, ‘nhường’]

Loại dữ liệu

Bản văn

str – x = "Chào thế giới"

Số

int, float, phức tạp

Sự nối tiếp

danh sách, tuple, phạm vi

Lập bản đồ

chính tả

Bộ

thiết lập, froundredet

Boolean

bool

Nhị phân

byte, bytearray, memoryview

Toán tử toán học

**

Số mũ 4 ** 2 = 16

%

Mô-đun / phần còn lại 43% 5 = 3

//

Bộ phận nguyên 11 // 5 = 2

/

Bộ phận 11/5 = 2.2

*

Phép nhân 3 * 3 = 9

Phép trừ 8 – 3 = 5

+

Thêm vào 2 + 2 = 4

==

Tương đương với

!= =

Không bằng

<

Ít hơn

>

Lớn hơn

<= =

Ít hơn hoặc bằng

>= =

Lớn hơn hoặc bằng

Bình luận

#

Có thể được sử dụng ở đầu một dòng hoặc từ trong một dòng đến cuối dòng

Phân tích mạng với Python

Sử dụng NMAP với máy quét cổng

$ pip cài đặt python-nmap

Các lệnh để chạy quét NMAP

nhập nmap
nmScan = nmap.PortScanner ()
nmScan.scan (’10 .1.0.0 ‘, ’25 -443’)

Các lệnh NMAP được sử dụng với python

nmScan.scaninfo () # {‘tcp’: {‘services’: ‘25 -80, ‘phương thức’: ‘kết nối’}}
nmScan.all_hosts ()
nmScan [’10 .1.0.0 ‘]. tên máy chủ ()
nmScan [’10 .1.0.0 ‘]. state ()
nmScan [’10 .1.0.0 ‘]. all_prot Protocol ()
nmScan [’10 .1.0.0 ‘] [‘ tcp ‘]. phím () # Kết quả – [80, 25, 22, 135]
nmScan [’10 .1.0.0 ‘]. has_tcp (25) # Kết quả Đúng / Sai
nmScan [’10 .1.0.0 ‘]. has_tcp (21) # Kết quả Sai / Đúng

Thư viện dnspython

Cài đặt

$ pip cài đặt dnspython

Truy vấn DNS cơ bản

nhập dns.resolver
tên = ‘google.com’
đối với qtype trong ‘A’, ‘AAAA’, ‘MX’, ‘NS’, ‘TXT’, ‘SOA’:
answer = dns.resolver.query (tên, qtype, nâng_on_no_answer = Sai)
if answer.rrset không phải là Không có:
in (answer.rrset)

Nhận tùy chọn tên và mục tiêu MX

nhập dns.resolver

answer = dns.resolver.query (‘dnspython.org’, ‘MX’)
cho câu trả lời:
in (‘Máy chủ’, rdata.exchange, ‘có ưu tiên’, rdata.preference)

Module cắm (giao diện Berkley API)

Chức năng chính một phương thức

socket () • ind () • lắng nghe () • accept () • connect () • connect_ex () • send () • recv () • close ()

Các loại ổ cắm

SOCK_STREAM

Đối với giao thức TCP • Truyền đáng tin cậy • Chuỗi gói • Định hướng kết nối • Hai chiều

SOCK_DGRAM

Đối với giao thức UDP • Truyền không đáng tin cậy • Không có chuỗi gói • Không kết nối (UDP) • Không hai chiều

Tạo ổ cắm

nhập ổ cắm # Nhập phương thức ổ cắm
socket.socket () # Hàm tạo socket
sock = ổ cắm. ổ cắm (họ ổ cắm, loại ổ cắm, giao thức = giá trị)

Gia đình ổ cắm

AF_UNIX hoặc là SAU

Loại ổ cắm

SOCK_STREAM hoặc là SOCK_DGRAM cho TCP & UDP tương ứng

• ví dụ. TCP – UDP2 = ổ cắm. ổ cắm (socket.AF_INET, socket.SOCK_DGRAM)

• ví dụ. UDP – TCP2 = ổ cắm. ổ cắm (ổ cắm.AF_INET, ổ cắm.SOCK_STREAM)

Phương pháp ổ cắm máy khách

kết nối()

Phương pháp ổ cắm máy chủ

ràng buộc () • lắng nghe (tồn đọng) • accept ()

Phương thức ổ cắm TCP

s.recv () # Nhận gói TCP
s.send () # Gửi các gói TCP

Phương pháp ổ cắm UDP

s.recvfrom () # Nhận gói UDP
s.sendto () # Truyền các gói UDP

Phương pháp ổ cắm khác

đóng()

Đóng kết nối ổ cắm

gethostname ()

Trả về một chuỗi bao gồm tên máy chủ của PC hiện tại

gethostbyname ()

Trả về một chuỗi bao gồm tên máy chủ và địa chỉ IP của PC hiện tại

nghe()

Thiết lập và khởi động trình nghe TCP

trói buộc()

Đính kèm (tên máy chủ, số cổng) vào ổ cắm

Chấp nhận()

Chờ kết nối máy khách TCP

kết nối()

Bắt đầu kết nối máy chủ TCP

Phương thức ổ cắm TCP
mysocket.accept ()

Trả về một tuple với địa chỉ từ xa đã kết nối

mysocket.bind (địa chỉ)

Đính kèm địa chỉ được chỉ định vào ổ cắm

mysocket.connect (địa chỉ)

Dữ liệu được gửi qua ổ cắm gán cho địa chỉ từ xa đã cho

mysocket.getpeername ()

Trả về địa chỉ từ xa nơi ổ cắm được kết nối

mysocket.getsockname ()

Trả về địa chỉ của điểm cuối cục bộ socket socket

mysocket.sendto (dữ liệu, địa chỉ)

Buộc một gói dữ liệu đến một địa chỉ từ xa cụ thể

Chặn ổ cắm

thiết lập (1)

Khối cài đặt

thiết lập chặn (0)

Xóa / bỏ cài đặt khối

Nhận số cổng bằng tên miền

ổ cắm nhập khẩu
socket.getservbyname (‘tên miền’)

Kiểm tra hỗ trợ cho IPV6

ổ cắm nhập khẩu
socket.has_ipv6 # Trả lời là TRUE hoặc FALSE

getaddrinfo () – Liên kết máy chủ với một cổng

từ ổ cắm nhập getaddrinfo
getaddrinfo (Không có, ‘FTP’, 0, socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
[(2, 1, 6, ”, (‘0.0.0.0’, 21)), (10, 1, 6, ”, (‘::’, 21, 0, 0))]

Ví dụ về socket

Ví dụ về ổ cắm phía máy khách

ổ cắm nhập khẩu
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
máy chủ = socket.gethostname ()
cổng = 1111
máy chủ.liên kết ((máy chủ, cổng)) # thay thế máy chủkhách hàng của tôi với IP đáng tin cậy
máy chủ.lắng nghe (5)
trong khi Đúng:
khách hàng của tôi,addr = myserver.accept ()
in("Đã kết nối với {str (addr)}")
khách hàng của tôi.gửi (dir.encode ("ascii"))
khách hàng của tôi.đóng()

Ví dụ về socket phía máy khách với Nhận xét

# nhập thư viện ổ cắm
ổ cắm nhập khẩu

# tạo một đối tượng socket
s = socket.socket ()
in ("Ổ cắm được tạo")

# dành một cổng trên máy tính có thể là bất cứ thứ gì
cổng = 1111

# liên kết với cổng
# chuỗi trống trong trường IP thay vì IP khiến máy chủ lắng nghe yêu cầu
# đến từ các máy tính khác trên mạng
s.bind ((”, cổng))
in ("ổ cắm liên kết với% s" %(Hải cảng))

# làm cho ổ cắm vào chế độ nghe
s.listen (5)
in ("ổ cắm đang lắng nghe")

# loop cho đến khi người dùng ngắt nó hoặc xảy ra lỗi
trong khi Đúng:

# Thiết lập kết nối với khách hàng.
c, addr = s.accept ()
in (‘Có kết nối từ’, addr)

# gửi tin nhắn cảm ơn đến khách hàng.
c.send (‘Cảm ơn bạn đã kết nối’)

# Đóng kết nối
c.c Đóng ()

Ví dụ về kịch bản

Tạo danh sách các thiết bị

>>>thiết bị = [‘SW1’, ‘SW2’, ‘SW3’]

Tạo danh sách từ điển Vlan

vlans = [{‘id’: ‘100’, ‘name’: ‘staff’}, {‘id’: ‘200’, ‘name’: ‘VOICE’},
{‘id’: ‘300’, ‘tên’: ‘không dây’}]

Viết các hàm để thu thập các lệnh và đẩy vào mạng

>>>def get_commands (vlan, tên):
lệnh = []
lệnh.append (‘vlan’ + vlan)
lệnh.append (‘name’ + name)

trả lại lệnh

>>> def push_commands (thiết bị, lệnh):
in (‘Kết nối với thiết bị:’ + thiết bị)
cho cmd trong các lệnh:
in (‘Lệnh gửi:’ + cmd)

Tạo Vlan trong nhiều thiết bị chuyển mạch bằng tập lệnh python

>>>cho vlan trong vlans:
id = vlan.get (‘id’)
tên = vlan.get (‘tên’)
in (‘\ n’)
in (‘Định cấu hình Vlan:’ + id)
lệnh = get_commands (id, name)
cho thiết bị trong thiết bị:
push_commands (thiết bị, lệnh)
in (‘\ n’)

Trích dẫn: https://www.oreilly.com/l Library / view / network-programmability-and / 9781491931240 / ch04.html

Vô hiệu hóa giao diện bộ định tuyến bằng lệnh python

>>> từ đẩy nhập khẩu Push_commands
thiết bị = ‘bộ định tuyến2’
lệnh = [‘giao diện Eth0 / 1’, ‘tắt máy’]
push_commands (thiết bị, lệnh)

Mô-đun phân tích cú pháp

argparse ()

Mô-đun argparse giúp dễ dàng viết các giao diện dòng lệnh thân thiện với người dùng. Chương trình xác định những đối số mà nó yêu cầu và argparse sẽ tìm ra cách phân tích chúng ra khỏi sys.argv

Tạo một trình phân tích cú pháp

>>> Parser = argparse.ArgumentParser (description = ‘Xử lý một số số nguyên.’)

Thêm đối số

>>> Parser.add_argument (‘số nguyên’, metavar = ‘N’, type = int, nargs = ‘+’,
… help = ‘một số nguyên cho bộ tích lũy’)
>>> Parser.add_argument (‘- sum’, Dest = ‘tích lũy’, hành động = ‘store_const’,
… const = tổng, mặc định = tối đa,
… help = ‘tính tổng các số nguyên (mặc định: tìm max)’)

Đối số phân tích cú pháp

>>> trình phân tích cú pháp.parse_args ([‘- tổng’, ‘7’, ‘-1′, ’42’])
Không gian tên (tích lũy =, số nguyên = [7, -1, 42])