/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví du #003 - String, Strip, Split/So Sánh, Cắt, Nối, Tách Chuỗi Trong Python

Yêu Cầu:
1. So sánh chuỗi
2. Cắt chuỗi - slice, độ dài - len
3. Nối chuỗi
4. Strip - Cắt ký tự đầu hoặc cuối chuỗi
5. Split - Tách chuỗi

Thực hiện:
1. So sánh chuỗi

Code:
'''
ip_addr là biến kiểu string
Gán chuỗi "192.168.1.1" vào biến ip_addr
'''
ip_addr = "192.168.1.1" 
print(ip_addr == "192.168.1.1") # in ra kết quả, so sánh biến ip_addr với chuỗi "192.168.1.1"
print(ip_addr == "192.168.1.999") # in ra kết quả, so sánh biến ip_addr với chuỗi "192.168.1.999"
print(ip_addr != "8.8.8.8") # in ra kết quả, kiểm tra xem biến ip_addr có khác với chuỗi "8.8.8.8"
print("192.168." in ip_addr) # in ra kết quả, kiểm tra chuỗi "192.168." CÓ trong chuỗi ip_addr không
print("8.8." not in ip_addr) # in ra kết quả, kiểm tra chuỗi "8.8." KHÔNG có trong chuỗi ip_addr có phải không
print()
print(ip_addr) # in ra chuỗi trong biến ip_addr

Kết quả:
C:\python>python Demo.py
True
False
True
True
True

192.168.1.1

C:\python>

2. Cắt Chuỗi - slice, độ dài - len

Slice: là phương thức cắt (cắt lát) lấy các ký tự liên tiếp trong chuỗi
Code:
ip_addr = "192.168.1.1" 
print(ip_addr[0:3]) # Lấy từ vị trí đầu tiên đến vị trí thứ trước 3 1 đơn vị (tạm hiểu 3-1). và in ra màn hình
print(ip_addr[4:7]) # Lấy từ vị trí thứ 4 đến vị trí 8-1 và in ra màn hình
print(ip_addr[8:]) # Lấy từ vị trí thứ 8 đến hết chuỗi
print(ip_addr[-7:-1]) # Lấy từ vị trí thứ -5 đến vị trí thứ trước -1 1 đơn vị (không lấy ký tự cuối)
print(ip_addr[-1]) # Lấy vị trí cuối cùng của chuỗi
print()
print("Do dai cua chuoi la: ",len(ip_addr)) # in ra độ dài của chuỗi

Cách đếm: Trong python có 2 cách đếm đó là:
  • Đếm từ trái sang phải bắt đầu bằng số không 0
  • Đếm từ phải sang trái bắt đầu bằng số -1
Bảng cách đếm trong python

Kết quả:
C:\python>python Demo.py
192
168
1.1
168.1.
1

Do dai cua chuoi la:  11

C:\python>

3. Cách nối chuỗi

Code:
ip_addr = "192.168.1.1" 
str1 = "My IP Address: "
my_str = str1 + ip_addr # nối 2 chuỗi lại với nhau
print()
print(my_str)
print ("-" * 25 ) # in ra 25 dấu trừ

Kết quả:
C:\python>python Demo.py
My IP Address: 192.168.1.1
-------------------------

C:\python>

4. Strip - Cắt ký tự đầu hoặc cuối chuỗi
Code:
str1 = "   Vi du ham strip() trong python   "
print(str1.strip()) # in ra chuỗi str1 và bỏ khoảng trắng 2 bên
str2 = "---Vi du ham strip() trong python---"
print(str2.strip('-')) # in ra chuỗi str2 và bỏ dấu trừ 2 bên
str3 = "---Vi du ham strip() trong python==="
print(str3.strip('-=')) # in ra chuỗi str3 và bỏ dấu - và dấu = ở 2 bên
Kết quả:

C:\python>python Demo.py
Vi du ham strip() trong python
Vi du ham strip() trong python
Vi du ham strip() trong python

C:\python>

5. Split - Tách chuỗi

Ví dụ 1:
Code:
ip_addr = "192.168.100.254"
'''
căn cứ vào dấu chấm "." để tách thành từng cụm
trong ví dụ này sẽ tách ra làm 4 cụm là:
'192', '168', '100', '254'
dấu chấm sẽ không được in ra
'''
Tachchuoi = ip_addr.split(".")
print()
print (Tachchuoi)

Kết quả:
C:\python>python Demo.py

['192', '168', '100', '254']

C:\python>

Ví dụ 2:
Code:
arp1 = "Internet  10.220.88.29           94   5254.abbe.5b7b  ARPA   FastEthernet4"
'''
tách chuỗi ra thành từng cụm và căn cứ vào khoảng trắng để tách
trong trường hợp này chia làm 6 cụm là:
'Internet', '10.220.88.29', '94', '5254.abbe.5b7b', 'ARPA', 'FastEthernet4'
'''
Tachchuoi = arp1.split()
print()
print (Tachchuoi)

Kết quả:
C:\python>python Demo.py
['Internet', '10.220.88.29', '94', '5254.abbe.5b7b', 'ARPA', 'FastEthernet4']

C:\python>

Xong!

VMware Workstation Startup Automatically

Vì lý do nào đó chúng ta dùng máy ảo trên VMware để sử dụng thực tế trong công việc, nhưng máy ảo này không tự khởi động khi máy thật chạy mà chúng ta phải tự mở nó lên.

Hôm nay chúng tôi giới thiệu các bạn cách để máy ảo trên VMware sẽ tự động khởi động sau khi máy thật được khởi động.

  • Enable Sharing



  •  Chọn  Máy ảo muốn share và clone.



  • Chọn thời gian (time delay) để khởi động máy ảo sau khi máy thật khởi động


  • Đảm bảo service VMware Workstation Server luôn ở trạng thái Running


Khởi động lại máy để kiểm tra.
Xong!

VMware Workstation Startup Automatically

Vì lý do nào đó chúng ta dùng máy ảo trên VMware để sử dụng thực tế trong công việc, nhưng máy ảo này không tự khởi động khi máy thật chạy mà chúng ta phải tự mở nó lên.

Hôm nay chúng tôi giới thiệu các bạn cách để máy ảo trên VMware sẽ tự động khởi động sau khi máy thật được khởi động.

  • Enable Sharing



  •  Chọn  Máy ảo muốn share và clone.



  • Chọn thời gian (time delay) để khởi động máy ảo sau khi máy thật khởi động


  • Đảm bảo service VMware Workstation Server luôn ở trạng thái Running


Khởi động lại máy để kiểm tra.
Xong!

Học Python Qua Ví Dụ #002- Date, DateTime, Weekday/Lấy Ngày Giờ Trong Python

Yêu Cầu:  In ra màn hình theo các yêu cầu:
1. Lấy ngày hệ thống
2. Lấy ngày, giờ hệ thống
3. Lấy thứ (weekday) của hệ thống:

Thực hiện:

1. Lấy ngày hệ thống


Code:
from datetime import date
today = date.today()
# dd-mm-YY
Hnay = "Hom nay: "
d1 = today.strftime("%d-%m-%Y")
print(Hnay, d1)
# Textual month, day and year	
d2 = today.strftime("%B %d, %Y")
print(Hnay, d2)
# mm-dd-y
d3 = today.strftime("%m-%d-%y")
print(Hnay, d3)
# Month abbreviation, day and year	
d4 = today.strftime("%b-%d-%Y")
print(Hnay, d4)

Kết quả:
C:\python>python Demo.py
Hom nay ngay:  16-07-2020
Hom nay ngay:  July 16, 2020
Hom nay ngay:  07-16-20
Hom nay ngay:  Jul-16-2020

C:\python>

2. Lấy ngày giờ hệ thống

Code:
from datetime import datetime
# datetime object containing current date and time
now = datetime.now()
dt_str1 = now.strftime("%Y-%m-%d_%H-%M-%S")
dt_str2 = now.strftime("%Y-%B-%d_%H-%M-%S")
dt_str3 = now.strftime("%Y-%b-%d_%H-%M-%S")
print(dt_str1)
print(dt_str2)
print(dt_str3)

Kết quả:
C:\python>python Demo.py
2020-07-16_14-16-16
2020-July-16_14-16-16
2020-Jul-16_14-16-16

C:\python>

3. Lấy thứ (weekday) của hệ thống:
Code:
from datetime import datetime
now = datetime.now()
#Thứ mấy trong tuần, tên đầy đủ
print(now.strftime("%A"))
#Hoặc Lấy 3 ký tự đầu tiên của thứ
print(now.strftime("%a"))
#Hoặc Lấy 3 ký tự đầu tiên của chuỗi 
dt_str = now.strftime("%c")[0:3] 
print(dt_str)

Kết quả:
C:\python>python Demo.py
Thursday
Thu
Thu

C:\python>


Bảng định dạng các biến lấy ngày giờ.

Xong!

Cài Đặt Thư Viện Cho Python / Installing Python Modules / Installing Python Packages

Yêu cầu:

1. Cài đặt thư viện Netmiko

2. Cài đặt ntc-templates

3. Jinja2 template

4. Một số thư viện hay dùng

5. Kiểm tra các thư viện đã cài đặt trên python


Thực hiện:

1. Cài đặt thư viện Netmiko: Dùng để cài đặt và thiết lập kết nối ssh vào thiết bị

C:\Users\Admin\Downloads>pip install netmiko

Collecting netmiko
  Using cached netmiko-3.1.1-py2.py3-none-any.whl (147 kB)
Collecting pyserial
  Using cached pyserial-3.4-py2.py3-none-any.whl (193 kB)
Collecting scp>=0.13.2
  Using cached scp-0.13.2-py2.py3-none-any.whl (9.5 kB)
Collecting paramiko>=2.4.3
  Using cached paramiko-2.7.1-py2.py3-none-any.whl (206 kB)
Requirement already satisfied: setuptools>=38.4.0 in c:\program files (x86)\python38-32\lib\site-packages (from netmiko) (41.2.0)
Collecting textfsm
  Using cached textfsm-1.1.0-py2.py3-none-any.whl (37 kB)
Collecting bcrypt>=3.1.3
  Using cached bcrypt-3.1.7-cp38-cp38-win32.whl (26 kB)
Collecting cryptography>=2.5
  Using cached cryptography-2.9.2-cp38-cp38-win32.whl (1.3 MB)
Collecting pynacl>=1.0.1
  Using cached PyNaCl-1.4.0-cp38-cp38-win32.whl (193 kB)
Collecting six
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Processing c:\users\admin\appdata\local\pip\cache\wheels\8e\70\28\3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4\future-0.18.2-py3-none-any.whl
Collecting cffi>=1.1
  Using cached cffi-1.14.0-cp38-cp38-win32.whl (165 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Installing collected packages: pyserial, pycparser, cffi, six, bcrypt, cryptography, pynacl, paramiko, scp, future, textfsm, netmiko
Successfully installed bcrypt-3.1.7 cffi-1.14.0 cryptography-2.9.2 future-0.18.2 netmiko-3.1.1 paramiko-2.7.1 pycparser-2.20 pynacl-1.4.0 pyserial-3.4 scp-0.13.2 six-1.15.0 textfsm-1.1.0
C:\Users\Admin\Downloads>


2. Cài đặt ntc-templates

C:\python>git clone https://github.com/networktocode/ntc-templates

Cloning into 'ntc-templates'...

remote: Enumerating objects: 8346, done.

remote: Total 8346 (delta 0), reused 0 (delta 0), pack-reused 8346

Receiving objects: 100% (8346/8346), 2.14 MiB | 880.00 KiB/s, done.

Resolving deltas: 100% (4671/4671), done.


C:\python>



3. Jinja2 template: Dùng import dữ liệu từ danh sách vào template với những trị trí đã được định sẵn (tương tự như mail merger trong word).
C:\>pip install jinja2
Defaulting to user installation because normal site-packages is not writeable
Collecting jinja2
  Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 939 kB/s
Collecting MarkupSafe>=0.23
  Downloading MarkupSafe-1.1.1-cp38-cp38-win32.whl (16 kB)
Installing collected packages: MarkupSafe, jinja2
Successfully installed MarkupSafe-1.1.1 jinja2-2.11.2
WARNING: You are using pip version 20.2; however, version 20.2.2 is available.
You should consider upgrading via the 'c:\program files (x86)\python38-32\python.exe -m pip install --upgrade pip' command.

C:\>

4. Một số thư viện hay dùng

- pip install netmiko
- pip install textfsm
- pip install pandas
- pip install jinja2
- pip install xlwings
- pip install pyinstaller
- pip install tabula-py

5. Kiểm tra các thư viện đã cài đặt trên python

pip freeze
Khi gõ lệnh này thì các thư viện đã cài sẽ được list ra


Xong!

Mô Hình Mạng Cho Các Doanh Nghiệp Vừa & Nhỏ - Bài 4 - Chuyên Đề Radius Authentication (802.1x) on Windows 2/4

Yêu cầu:
1. Đăng ký Network Policy Server với Domain Controller
2. Tạo Radius Client và secret key.
3. Cấu hình Policy
4. Tạo Username & Group
5. Tạo policies
6. Test kết nối Radius
7. Cấu hình Phương thức chứng thực.

Thực hiện:
1. Đăng ký Network Policy Server với Domain Controller



2. Tạo Radius Client và secret key.


Với cấu hình trên có nghĩa là: cho phép thiết bị có IP 192.168.0.112 có thể giao tiếp với Radius server và secrect key là 123456 với Friendly Name là "Sw_Port-baseAuthentication"

3. Cấu hình Policy
Thiết lập Connection

Policies name: là tên chỉ mang tính gợi nhớ, chúng ta điền tên gì cũng được.
Client Friendly Name: là trên Radius client chúng vừa tạo ở bước 2. Trong lab này Frient Name có tên là "Sw_Port-baseAuthentication"




4. Tạo Username & Group

Tạo Group có tên RADIUS GROUP nhằm chuẩn bị cho việc tạo Network Policies

Tạo mới user với thông tin:
  • Username: u10;
  • Password: 123;
  • Password không bao giờ hết hạn.

Thêm user u10 vào group có tên RADIUS GROUP (vừa tạo ở trên).
Khi làm policy với group sẽ tiện hơn thay vì làm policy cho từng user riêng, vì chỉ policy cho group thì nó sẽ cho các user trong group.



Tạo thêm user u20 với password 123, chúng tôi chọn copy u10 cho u20. Khi làm vậy mặc định u20 sẽ là thành viên của group RADIUS GROUP luôn.


5. Tạo policies





6. Test kết nối Radius
Chạy Windows PowerShell và thực hiện lệnh trên máy Radius Server:
netsh advfirewall firewall add rule name="Allow Port 1645" dir=in action=allow protocol=TCP localport=1645

Có nghĩa: đảm bảo firewall trên Radius server của windows cho phép truy cập port 1645- TCP

Dùng 1 máy tính dùng hệ điều hành windows đặt IP 192.168.0.112/24 (đây là IP chúng ta đã cấu hình ở bước 2 trong bài lab này, và máy tính này chỉ dùng để test xem Radius có hoạt động không, test xong bỏ PC này ra khỏi hệ thống).

Ở đây chúng tôi hướng dẫn các bạn từng bước chậm mà chắc, nếu bạn nào tự tin là đúng thì có thể bỏ qua phần kiểm tra này.

Tải phần mềm NTRadping tại đây chạy file NTRadping và điền các thông tin như dưới rồi nhấn Send. Nếu kết quả trả về Accept là kết nối thành công
  • Radius server: 192.168.0.111
  • Port: 1645
  • Secret key: 123456
  • User  name: u10
  • Password: 123


Xem log file trong radius server cũng đã ghi nhận Radius client có IP 192.168.0.112 dùng username u10 để chứng thực.



7. Cấu hình Phương thức chứng thực.



Noted: Với PEAP chúng dùng trong phần wireless authentication

Xong!

/*header slide*/