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’) |
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ủ và 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 # dành một cổng trên máy tính có thể là bất cứ thứ gì # liên kết với cổng # làm cho ổ cắm vào chế độ nghe # loop cho đến khi người dùng ngắt nó hoặc xảy ra lỗi # Thiết lập kết nối với khách hàng. # gửi tin nhắn cảm ơn đến khách hàng. # Đóng kết nối |
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): |
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]) |