/*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===*/

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!

Học Python Qua Ví Dụ #001 - Ví Dụ Kinh Điển, Comments, Printing to stdout and Reading from stdin

Tham khảo các cài đặt python ở đây

Yêu cầu:
1. Dùng hàm Print() in ra chuỗi 
2. Dùng hàm Print() in ra chuỗi thông qua biến (có từ khóa của python)
3. In ra chuỗi với dữ liệu nhập từ bàn phím với hàm input
4. Chú thích trong python. Hàm input với cách bắt lỗi try, except. 

Thực hiện:

Ví dụ1:
In ra màn hình 1 dòng trắng
In ra màn hình chữ Hello World

  • Tạo file Demo.PY có nội dung như hình dưới
  • Từ màn hình command prompt chuyển đến thư mục chứa file Demo.py sau đó gõ lệnh python demo.py. Trong ví dụ này chúng tôi lưu ở c:\python


Ví vụ 2:
In ra chuỗi "c:\python\test\newfolder" thông qua biến.

Code:
path = "c:\python\test\newfolder"
print(path)
 
Kết quả:
C:\python>python Demo.py
c:\python       est
ewfolder

C:\python>
Nhận xét: Chúng ta thấy:
- "\t" không được in ra mà thay vào đó là 1 cái tab
- "\n" không được in ra và thay vào đó là 1 xuống hàng (hay enter)
Vì chúng trùng với các ký hiệu hay từ khóa của hệ thống nên nó sẽ không được in ra mà python sẽ ưu tiên xử lý chuỗi theo từ khóa trước.

Để giải quyết vấn đề này chúng ta thêm chữ r phía trước chuỗi, ý nghĩa bỏ qua các ký hiệu/từ khóa trong chuỗi, nhập sao xuất vậy:
code:
path = r"c:\python\test\newfolder"
print(path)

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

Vidu 3:
Yêu cầu nhập dữ liệu từ bàn phím và in nội dung vừa nhập ra màn hình.

Code:

output = input("Nhap vao Chuoi: ")

print("Chuoi ban vua nhap vao: ", output)
Kết quả:
C:\python>python Demo.py
Nhap vao Chuoi: Hoc Python qua vi du
Chuoi ban vua nhap vao: Hoc Python qua vi du
C:\python>

Ví dụ 4:
Hàm input chỉ chạy trên python3.6 trờ lên và không chạy trên python2.x viết chương trình nhập chuỗi từ bàn phím và in ra chuỗi vừa nhập và đảm bảo chạy được trên cả python3.x và python2.x

Code:
'''Đây là chú thích nhiều dòng!!!
Hàm input chỉ chạy trên python3.6 trờ lên và không chạy trên python2.x
viết chương trình nhập chuỗi từ bàn phím và in ra chuỗi vừa nhập và
đảm bảo chạy được trên cả python3.x và python2.x
'''
from __future__ import print_function # nếu sử dụng python 2.x phải thêm dòng này
try: # trước tiên thử với python2.x
    output = raw_input("'python2' Nhap vao Chuoi: ")
except NameError: # nếu không phải pytho2.x thì chạy code bên dưới.
    output = input("'python3' Nhap vao Chuoi: ")
print("Chuoi ban vua nhap vao: ", output)

Chú thích trong python:
 
  • Dùng dấu thăng # chú thích 1 dòng, nội dung sau dấu # là chú thích python sẽ bỏ qua không thực thi 
  • Nếu muốn chú thích nhiều dòng liên tiếp thì dùng 1 cặp 3 dấu nháy đơn ''' ''' nội dung chú thích trong cặp nháy này
Kết quả:
C:\python>python Demo.py
'python3' Nhap vao Chuoi: 8.8.8.8
Chuoi ban vua nhap vao: 8.8.8.8
C:\python>

Xong!
/*header slide*/