10/31/12

CSS - Drop Down Menu - Css Menu trỏ xuống tự động

Có rất nhiều Code CSS Drop menu down: menu trỏ xuống tự động rất hay được chia sẻ miễn phí trên các trang. Hôm nay mình lấy những mẫu menu CSS tiêu biểu chia sẻ tới các bạn. Các bạn có thể dùng những menu này để thiết kế cho Website - Blog của mình. Menu trên Blogger mình cũng đang dùng 1 trong số đó.
- Sau đây mình giới thiệu 1 số Drop Down menu Css đặc trưng, tiêu biểu:



Download Menu 1



Dowwnload Menu 2


Download Menu 3



Download Menu 4
-------------------------------
Các bạn có thể tùy chỉnh, tùy biến để đặt vào vị trí phù hợp với Website - Blog của mình. Blog của mình thì mình đã xóa menu sẵn có của Template để thay thế Menu có dạng mẫu 3 ở trên.
Chúc các bạn thành công !

Cách khóa tài khoản Facebook (FB) - Tạm thời hoặc Vĩnh viễn

- Bạn muốn tạm xa Facebook 1 thời gian? Bạn cảm thấy facebook đang làm phiền bạn. Bạn muốn mất tích trên facebook một thời gian hoặc vĩnh viễn...
Đó là những lý do FB cho bạn tùy chọn thiết lập tài khoản có thể khóa tạm thời hoặc khóa vĩnh viễn.
Một số bạn có nt hỏi mình cách khóa tài khoản này. ^_^ Rất nhiều bạn biết nhưng mình trình bày lại cho các bạn theo dõi:
- Các bạn vào "Thiết lập tài khoản".
Khóa tài khoản FB tạm thời - vĩnh viễn

Ở tab "Bào mật" các bạn chọn "Khóa tài khoản của bạn"

Khóa tài khoản FB tạm thời - Vĩnh viễn
Sau đó tới 1 trang, ở trang này có các lựa chọn tùy biến cho các bạn. Các bạn chọn theo ý muốn của mình nhé !
--------------------------
Chúc các bạn vui !

10/30/12

Đưa trang Like button (Page) Facebook vào trong Website - Blog

Truy cập vào một số trang Web bạn có thấy có một ứng dụng nút Like (thích) Page Facebook của họ ngay ở trang Web đó. Đó là việc Webmaster đã chèn trang facebook vào Web của họ. Mình cũng đã làm trên Blog của mình. Các bạn ủng hộ trang mình thì cho 1 LIKE nhé! Bài viết này mình hướng dẫn các bạn chèn trang facebook của bạn vào Website, blogger - blogspot , blog của bạn.
- Trước tiên các có 1 page Facebook đã được tạo. Nếu chưa tạo thì các bạn tham khảo bài Cách tạo trang (Fan Page) trên Facebook
- Khi có 1 trang rồi thì các bạn truy cập tới địa chỉ http://developers.facebook.com/docs/reference/plugins/like-box/  và điểu chỉnh các thông số sao cho phù hợp với Web của các bạn.
Like fanpage facebook cho website, blog

Sau đó các bạn bấm "Get Code" và được 2 đoạn code. Có hướng dẫn chèn đầy đủ + chi tiết.
- Đoạn Code 1: Chèn sau thẻ <body>
- Đoạn Code 2: Chèn vào vị trí mà bạn muốn hiển thị.
--------------------------------------------
Xong rồi đấy các bạn. Nếu thấy hay thì vào page mình chém gió và LIKE cho Page mình 1 phát nhé!
---------------
Chúc các bạn vui !

10/29/12

Bài toán xử lý ma trận trong C, C#

Code bài tập xử lý ma trận trong C# - Lập trình hướng đối tượng.
Bài tập này mình làm cho môn lập trình hướng đối tượng @.@ Nhắc đến lập trình là cũng hơi ngán rồi. Bài tập tính toán ma trận này gồm các hàm: Nhập ma trận, cập nhật phần tử ma trận, tính tổng cộng 2 ma trận, hiệu 2 ma trận, tích 2 ma trận, xuất ma trận. Ở Code C các bạn chuyển đổi lại theo C
Ma trận trong C
Bạn nào có cần bài tập xử lý ma trận trong C# - Lập trình hướng đối tượng thì tham khảo code nhé !
Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Matran
{
// Cac thuoc tinh
private int So_Hang;
private int So_Cot;
private int[,] MT;
// Phuong thuc khoi tao
public Matran(int sh, int sc)
{
this.So_Hang = sh;
this.So_Cot = sc;
this.MT = new int[sh, sc];
}
// Phuong thuc Nhap ma tran
public void NhapMT()
{
Console.Write("\n\t Nhap so hang cua ma tran: ");
this.So_Hang = int.Parse(Console.ReadLine());
Console.Write("\n\t Nhap so cot cua ma tran: ");
this.So_Cot = int.Parse(Console.ReadLine());
for (int i = 1; i <= this.So_Hang; i++)
for (int j = 1; j <= this.So_Cot; j++)
{
Console.Write("\n\t - Nhap phan tu thu A[" + i + "," + j + "]: ");
this.MT[i, j] = int.Parse(Console.ReadLine());
}
}
// Tim kiem phan tu ma tran
public int Tim_Kiem(int x)
{
for (int i = 1; i <= this.So_Hang; i++)
for (int j = 1; j <= this.So_Cot; j++)
if (this.MT[i, j] == x)
return 1;
return 0;
}
// Cap nhat phan tu
public void CapNhat(int m, int n, int pos)
{
this.MT[m, n] = pos;
}
// Cong 2 ma tran
public Matran Cong2MT(Matran a, Matran b)
{
Matran c = new Matran(this.So_Hang,this.So_Cot);
if (a.So_Hang == b.So_Hang && a.So_Cot == b.So_Cot)
{
for (int i = 0; i < this.So_Hang; i++)
{
for (int j = 0; j < this.So_Cot; j++)
{
c.MT[i, j] = a.MT[i, j] + b.MT[i, j];
}
}
}
else
{
Console.WriteLine("\n\t Khong cong duoc !!! \n");
}
return c;
}
// Tru 2 ma tran
public Matran Hieu2MT(Matran a, Matran b)
{
Matran c = new Matran(this.So_Hang, this.So_Cot);
if (a.So_Hang == b.So_Hang && a.So_Cot == b.So_Cot)
{
for (int i = 0; i < this.So_Hang; i++)
{
for (int j = 0; j < this.So_Cot; j++)
{
c.MT[i, j] = a.MT[i, j] - b.MT[i, j];
}
}
}
else
{
Console.WriteLine("\n\t Khong tru duoc !!!");
}
return c;
}
// Tich 2 ma tran
public Matran Tich2MT(Matran a, Matran b)
{
Matran c = new Matran(this.So_Hang, this.So_Cot);
if (a.So_Cot != b.So_Hang)
{
Console.Write("\n\t ERROR: Khong thuc hien dc phep nhan !!!");
}
else
{
for (int i = 0; i < this.So_Hang; i++)
for (int j = 0; j < this.So_Cot; j++)
{
c.MT[i, j] = 0;
for (int k = 0; k < b.So_Hang; k++)
{
c.MT[i, j] += a.MT[i, k] * b.MT[k, j];
}
}
}
return c;
}
// Xuat Ma tran
public void XuatMT()
{
Console.WriteLine("\t Ma tran: \n");
for (int i = 1; i <= this.So_Hang; i++)
{
for (int j = 1; j <= this.So_Cot; j++)
{
Console.Write("\t" + this.MT[i,j] +" ");
}
Console.WriteLine();
}
}
// Menu 9
public void Menu(out byte chon)
{
Console.Clear();
Console.WriteLine("\n\t|| BAN DA LUA CHON 9 - BAI TOAN MA TRAN || ");
Console.WriteLine("\t||----------------------------------------||");
Console.WriteLine("\t|| 1. Nhap Ma Tran ||");
Console.WriteLine("\t|| 2. Cap nhap phan tu Ma Tran. ||");
Console.WriteLine("\t|| 3. Tong hai Ma tran ||");
Console.WriteLine("\t|| 4. Hieu hai Ma tran ||");
Console.WriteLine("\t|| 5. Tich hai Ma Tran ||");
Console.WriteLine("\t|| 6. Xuat Ma Tran ||");
Console.WriteLine("\t|| 0. Quay ve Menu chinh ||");
Console.WriteLine("\t||________________________________________||\n");
Console.Write("\n\tNHAP LUA CHON: ");
chon = byte.Parse(Console.ReadLine());
}
// Main 9
public void Main()
{
Matran M1 = new Matran(50,50);
Matran M2 = new Matran(50,50);
Matran M3 = new Matran(50,50);
byte chon;
int pos;
int h, c, n;
//int[,] a;
do
{
Menu9(out chon);
switch(chon)
{
case 1:
M1.NhapMT();
break;
case 2:
Console.Write("\n\t Nhap vi tri phan tu can cap nhat \n");
Console.Write("\t\tHang: ");
h = int.Parse(Console.ReadLine());
Console.Write("\n\t\t Cot: ");
c = int.Parse(Console.ReadLine());
Console.Write("\n\t\t Gia tri: ");
n = int.Parse(Console.ReadLine());
if (M1.Tim_Kiem(n) == -1)
{
Console.Write("\n\t KET QUA TIM KIEM KHONG HOP LE !!!");
}
else
{
Console.Write("\n\t Nhap gia tri moi: ");
pos = int.Parse(Console.ReadLine());
M1.CapNhat(h, c, pos);
}
Console.ReadLine();
break;
case 3:
Console.WriteLine("\n\t Nhap ma tran 1: ");
M1.NhapMT();
Console.WriteLine("\n\t Nhap ma tran thu 2: ");
M2.NhapMT();
Console.WriteLine("\t Tong hai ma tran la: ");
M3.Cong2MT(M1,M2);
M3.XuatMT();
Console.ReadLine();
break;
case 4:
Console.WriteLine("\n\t Nhap ma tran thu 1: ");
M1.NhapMT();
Console.WriteLine("\n\t Nhap ma tran thu 2: ");
M2.NhapMT();
Console.WriteLine("\t Hieu hai ma tran la: ");
M3.Hieu2MT(M1, M2);
M3.XuatMT();
Console.ReadLine();
break;
case 5:
Console.WriteLine("\n\t Nhap ma tran thu 1: ");
M1.NhapMT();
Console.WriteLine("\n\t Nhap ma tran thu 2: ");
M2.NhapMT();
Console.WriteLine("\n\t Tich 2 Ma tran la: ");
M3.Tich2MT(M1,M2);
M3.XuatMT();
Console.ReadLine();
break;
case 6:
M1.XuatMT();
Console.ReadLine();
break;
case 0:
Console.Clear();
break;
default:
Console.Write("\n KHONG CO LUA CHON NAY !!!");
break;
}
} while(chon!=0);
}
}

10/28/12

Bài tập xử lý dãy số trong C, C# - Lập trình hướng đối tượng

Bài tập xử lý dãy số trong C# - Lập trình hướng đối tượng.
Bài tập này mình làm cho môn lập trình hướng đối tượng @.@ Nhắc đến lập trình là cũng hơi ngán rồi. Xử lý dãy số trong C này gồm những hàm sau: Cập nhật, tìm kiếm phần tử, tính tổng các phần tử trong dãy số, tính trung bình cộng các phần tử, in dãy con các số nguyên tố, sắp xếp các phần tử theo thứ tự tăng.
Bạn nào có cần bài tập xử lý dãy số trong C# - Lập trình hướng đối tượng thì tham khảo nhé !
Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class DaySo
{
//cac thuoc tinh
private int[] ds;
private int sopt;

//cac phuong thuc
public DaySo(int n)
{
this.ds = new int[n];
this.sopt = 0;
}
public void Nhap()
{
//string x;
Console.Write("\t Nhap so phan tu cua mang: ");
this.sopt = int.Parse(Console.ReadLine());
for (int i = 0; i < this.sopt; i++)
{
Console.Write("\t Nhap phan tu thu " + i + ": ");
this.ds[i]=int.Parse(Console.ReadLine());
}
}
public void CapNhat(int pos, int a)
{
this.ds[pos] = a;
}
public int TimKiem(int a)
{
for (int i = 0; i < this.sopt; i++)
{
if (this.ds[i] == a)
return i;
}
return -1;
}
public void Sapxep()
{
int tam;
for (int i = 0; i < this.sopt; i++)
for (int j = i + 1; j <= this.sopt; j++ )
{
if (this.ds[i] > this.ds[j])
{
tam = this.ds[i];
this.ds[i] = this.ds[j];
this.ds[j] = tam;
}
}
Console.WriteLine("\t Cac phan tu sau khi sap xep la: ");
for (int i = 1; i <= this.sopt; i++)
Console.WriteLine("\t" + this.ds[i]);
}
public int Doc(int pos)
{
return this.ds[pos - 1];
}
public long TinhTong()
{
long tg = 0;
for (int i = 0; i < this.sopt; i++)
{
tg += this.ds[i];
}
return tg;
}
public float TrungBinhCong()
{
return (this.TinhTong() / this.sopt);
}
public bool LaSoNguyenTo(int i)
{
if (this.ds[i] < 2)
return false;
for (int j = 2; j <= this.ds[i] / 2; j++)
if (this.ds[i] % j == 0)
return false;
return true;
}
public DaySo DayCon()
{
DaySo a = new DaySo(this.sopt);
for (int i = 0; i < this.sopt; i++)
{
if (this.LaSoNguyenTo(this.ds[i]))
{
a.ds[a.sopt] = ds[i];
a.sopt++;
}
}
return a;
}
public void Xuat()
{
Console.Write("Day phan tu: ");
for (int i = 0; i < this.sopt; i++)
Console.Write(this.ds[i] + " ");
}
public static void Menu(out byte chon)
{
Console.Clear();
Console.WriteLine("\n\t|| BAN DA LUA CHON 4 - THAO TAC DAY SO || ");
Console.WriteLine("\t||----------------------------------------||");
Console.WriteLine("\t|| 1. Nhap ||");
Console.WriteLine("\t|| 2. Cap nhat. ||");
Console.WriteLine("\t|| 3. Tim kiem. ||");
Console.WriteLine("\t|| 4. Tinh tong cac phan tu. ||");
Console.WriteLine("\t|| 5. Tinh trung binh cong cac phan tu. ||");
Console.WriteLine("\t|| 6. In day con cac so nguyen to. ||");
Console.WriteLine("\t|| 7. Sap xep phan tu theo thu tu tang ||");
Console.WriteLine("\t|| 8. Xuat day ||");
Console.WriteLine("\t|| 0. Ve menu chinh ||");
Console.WriteLine("\t||________________________________________||\n");
Console.Write("\n\tNHAP LUA CHON: ");
chon4 = byte.Parse(Console.ReadLine());
}
public void Main()
{
DaySo d1 = new DaySo(50);
byte chon;
int pos, gt;
do
{
Menu4(out chon);
switch (chon)
{
case 1:
d1.Nhap();
break;
case 2:
Console.Write("\t Vi tri can cap nhat: ");
pos = int.Parse(Console.ReadLine());
if (d1.TimKiem(pos) == -1)
{
Console.WriteLine("\t Vi tri khong hop le!!!");
}
else
{
Console.Write("\tNhap gia tri moi: ");
gt = int.Parse(Console.ReadLine());
d1.CapNhat(pos, gt);
}
break;
case 3:
Console.Write("\tNhap vi tri can truy xuat: ");
pos = int.Parse(Console.ReadLine());
if (d1.TimKiem(pos) == -1)
{
Console.WriteLine("\tVi tri khong hop le!!!");
}
else
{
Console.WriteLine("\tGia tri tai vi tri truy xuat la: " + d1.Doc(pos));
}
break;
case 4:
long tong;
tong = d1.TinhTong();
Console.Write("\n\t Tong cac phan tu la: {0}", tong);
break;
case 5:
float TBC;
TBC = d1.TrungBinhCong();
Console.Write("\n\t Trung Binh Cong cac phan tu la: {0} ",TBC);
break;
case 6:
//int[] i;
//Console.WriteLine("\t\n Cac so nguyen to: " +i );
break;
case 7:
//int n=this.sopt;
//int[] a=this.ds;
d1.Sapxep();
break;
case 8:
d1.Xuat();
break;
case 0:
Console.Clear();
break;
default:
Console.WriteLine("\n\n\t Khong co lua chon nay !!!");
break;
}
Console.ReadLine();
}
while (chon != 0);
}
}

10/26/12

Các lệnh cấu hình Router Cisco - Router Cisco configuration

Cấu hình router để cho router thực hiện nhiều chức năng mạng phức tạp là một công việc đầy thử thách. Tuy nhiên bước bắt đầu cấu hình router thì không khó lắm. Trong bài viết này sẽ giới thiệu về các chế độ cấu hình cơ bản của router và một số lệnh cấu hình đơn giản. Bài viết này trình bày các vấn đề:
• Đặt tên cho router.
• Cài đặt mật mã cho router.
• Khảo sát các lệnh show.
• Cấu hình cổng Ethernet trên router.
• Thực hiện một số thay đổi trên router.
• Lưu các thay đổi đó lại.
• Cấu hình câu chú thích cho các cổng giao tiếp trên router.
• Cấu hình thông điệp hàng ngày cho router.
• Cấu hình bảng host cho router.
• Hiểu được tầm quan trọng của việc ghi nhận lại và lưu dự phòng cấu hình của router.
cau hinh router, cac lenh cau hinh router co ban
Chế độ giao tiếp dòng lệnh CLI
Tất cả các câu lệnh làm thay đổi cấu hình router đều xuất phát từ chế cầu hình toàn cục. Tuỳ theo ý bạn muốn thay đổi thay đổi phần cấu hình đặc biệt nào của router thì bạn chuyển vào chế độ chuyên biệt tương ứng. Các chế độ cấu hình chuyên biệt
này đều là chế độ con của chế độ cấu hình toàn cục.
Chế độ cấu hình toàn cục là chế độ cấu hình chính. Từ chế độ này bạn có thể chuyển vào các chế độ chuyên biệt như:
  • Chế độ cấu hình cổng giao tiếp.
  • Chế độ cấu hình đường truy cập.
  • Chế độ cấu hình router.
  • Chế độ cấu hình cổng con.
  • Chế độ cấu hình bộ điều khiển.
1. Cấu hình đặt tên cho Router
Công việc đầu tiên khi cấu hình router là đặt tên cho router. Trong chế độ cấu hình toàn cục, bạn dùng lệnh sau:
Router(config)#hostname VietNam
VietNam(config)#

Ngay sau khi bạn nhấn phím Enter để thực thi câu lệnh bạn sẽ thấy dấu nhắc đổi từ tên mặc định (Router) sang tên mà bạn vừa mới đặt.
2. Cấu hình đặt mật mã (mật khẩu - Password) cho Router
- Đặt mật mã cho đường console:
Router(config)#line console 0
Router(config-line)#password (password)
Router(config-line)#login

Chúng ta cũng cần đặt mật mã cho một hoặc nhièu đương vty để kiểm soát các user truy nhập từ xa vào router và Telnet. Thông thường Cisco router có 5 đường vty với thứ tự từ 0 đến 4. Chúng ta thường sử dụng một mật mã cho tất cả các đường vty, nhưng đôi khi chúng ta nên đặt thêm mật mã riêng cho một đường để dự phòng khi cả 4 đường kia đều đang được sủ dụng. Sau đây là các lệnh cần sử dụng để đặt mật mã cho đường vty:
Router(config)#line vty 0 4
Router(config-line)#password (password)
Router(config-line)#login

Mật mã enable và enable secret được sử dụng để hạn chế việc truy cập vào chế độ EXEC đặc quyền. Mật mã enable chỉ được sử dụng khi chúng ta cài đặt mật mã enable secret vì mật mã này được mã hoá còn mật mã enable thì không. Sau đây là các lệnh dùng để đặt mật mã enable secret:
Router(config)#enable password (password)
Router(config)#enable secret (password)

Đôi khi bạn sẽ thấy là rất không an toàn khi mật mã được hiển thị rõ ràng khi sử dụng lệnh show running-config hoặc show startup-config. Để tránh điều này bạn nên dùng lệnh sau để mã hoá tất cả các mật mã hiển thị trên tập tin cấu hình của router:
Router(config)#service password-encryption
Đặt mật mã cho Router
3. Kiểm tra cấu hình Router bằng các lệnh Show
Chúng ta có rất nhiều lệnh show được dùng để kiểm tra nội dung các tập tin trên router và để tìm ra sự cố. Trong cả hai chế độ EXEC đặc quyền và EXEC người dùng, khi bạn gõ show? Thì bạn sẽ xem được danh sách các lệnh show. Đương nhiên là số lệnh show dùng được trong chế độ EXEC đặc quyền sẽ nhiều hơn trong chế độ EXEC người dùng.
Show interface - hiển thị trạng thái của tất cả các cổng giao tiếp trên router. Để xem trạng thái của một cổng nào đó thì bạn thêm tên và số thứ tự của cổng đó sau lệnh show interface. Ví dụ như:
Router#show interface serial 0/1
• Show controllers serial - hiển thị các thông tin chuyên biệt về phần cứng của các cổng serial.
• Show clock - hiển thị đồng hồ được cài đặt trên router.
• Show hosts - hiển thị danh sách tên và địa chỉ tương ứng.
• Show users - hiển thị tất cả các user đang kết nối vảo router.
• Show history - hiển thị danh sách các câu lệnh vừa mới được sử dụng.
• Show flash – hiển thị thông tin bộ nhớ flash và tập tin IOS chứa trong đó.
• Show version - hiển thị thông tin về router và IOS đang chạy trên RAM.
• Show ARP - hiển thị bảng ARP trên router.
• Show protocol - hiển thị trạng thái toàn cục và trạng thái của các cổng giao tiếp đã được cấu hình giao thức lớp 3.
• Show startup-configuration - hiển thị tập tin cấu hình đăng chạy trên RAM.
4. Cấu hình cổng Serial
Chúng ta có thẻ cấuhình cổng serial bẳng đường console hoặc vty. Sau đây là các bước cần thực hiện khi cấu hình cổng serial:
- Vào chế độ cấu hình toàn cục.
- Vào chế độ cấu hình cổng serial.
- Khai báo địa chỉ và subnet mask.
- Đặt tốc độ clock nếu đầu cáp cắm vào cổng serial là DCE. Nếu đầu cáp là DTE thì chúng ta có thể bỏ qua này.
- Khởi động serial.
Mỗi một cổng serial đều phải có một địa chỉ IP và subnet mask để chúng có thể định tuyến các gói IP. Để cấu hình địa chỉ IP chúng ta dùng lệnh sau:
Router(config)#interface serial 0/0
Router(config)#ip address (ip address) (netmask)

Cổng serial cần phải có tín hiệu clock để điều khiển thời gian thực hiện thông tin liên lạc. Trong hầu hết các trường hợp, thiết bị DCE, ví dụ như CSU, sẽ là thiết bị cung cấp tín hiệu clock. Mặc định thì Cisco router lad thiết bị DTE nhưng chúng ta có thể cấu hình chúng thành thiết bị DCE.
Mặc định thì các cổng giao tiếp trên router đều đóng. Nếu bạn muốn mở hay khởi động các cổng này thì bạn phải dùng lệnh no shutdown. Nếu bạn muốn đóng cổng lại để bảo trì hoặc xử lý sự cố thì bạn dùng lệnh shutdown.
Router(config)#interface serial 0/0
Router(config-if)#clock rate 56000
Router(config-if)#no shutdown

5. Cấu hình cổng Ethernet
Tương tự như cổng serial, chúng ta có thể cấu hình cổng Ethernet bằng đường
console hoặc vty.
Mỗi cổng Ethernet cũng cần phải có một địa chỉ IP và subnet mask để có thể thực
hiện định tuyến các gói IP qua cổng đó.
Sau đây là các bước thực hiện cấu hình Ethernet:
•Vào chế độ cấu hình toàn cục.
•Vào chế độ cấu hình cổng Ethernet.
•Khai báo địa chỉ và subnet mask.
•Khởi động cổng Ethernet.
Măc định là các cổng trên router đều đóng. Do đó, bạn phải dùng lệnh no
shutdown để mở hay khởi động cổng. Nếu bạn cần đóng cổng lại để bảo trì hay xử
lý sự cố thì bạn dùng lệnh shutdown.

-------------------------------------------
Chúc các bạn học tập tốt !

10/25/12

Các thao tác sử dụng bàn phím

Bài viết này mình liệt kê một số thao tác sử dụng bàn phím thay cho chuột. Những thao tác sử dụng bàn phím này giúp cho chúng ta làm việc nhanh hơn, quen dần với thao tác bạn sẽ ít cần sử dụng tới chuột. Đặc biệt trong việc gõ văn bản, sử dụng thao tác trên Word, Excel... là rất tiện lợi.
Thao tác trên bàn phím
  •  Ctrl+1: Giãn dòng đơn (1)
  •  Ctrl+2: Giãn dòng đôi (2)
  •  Ctrl+5: Giãn dòng 1,5
  •  Ctrl+0 (zero): Tạo thêm độ giãn dòng đơn trước đoạn
  •  Ctrl+L: Căn dòng trái
  •  Ctrl+R: Căn dòng phải
  •  Ctrl+E: Căn dòng giữa
  •  Ctrl+J: Căn dòng chữ dàn đều 2 bên, thẳng lề
  •  Ctrl+N: Tạo file mới
  •  Ctrl+O: Mở file đã có
  •  Ctrl+S: Lưu nội dung file
  •  Ctrl+O: In ấn file
  •  F12: Lưu tài liệu với tên khác
  •  F7: Kiểm tra lỗi chính tả tiếng Anh
  •  Ctrl+X: Cắt đoạn nội dung đã chọn (bôi đen)
  •  Ctrl+C: Sao chép đoạn nội dung đã chọn
  •  Ctrl+V: Dán tài liệu
  •  Ctrl+Z: Bỏ qua lệnh vừa làm
  •  Ctrl+Y: Khôi phục lệnh vừa bỏ (ngược lại với Ctrl+Z)
  •  Ctrl+Shift+S: Tạo Style (heading) -> Dùng mục lục tự động
  •  Ctrl+Shift+F: Thay đổi phông chữ
  •  Ctrl+Shift+P: Thay đổi cỡ chữ
  •  Ctrl+D: Mở hộp thoại định dạng font chữ
  •  Ctrl+B: Bật/tắt chữ đậm
  •  Ctrl+I: Bật/tắt chữ nghiêng
  •  Ctrl+U: Bật/tắt chữ gạch chân đơn
  •  Ctrl+M: Lùi đoạn văn bản vào 1 tab (mặc định 1,27cm)
  •  Ctrl+Shift+M: Lùi đoạn văn bản ra lề 1 tab
  •  Ctrl+T: Lùi những dòng không phải là dòng đầu của đoạn văn bản vào 1 tab
  •  Ctrl+Shift+T: Lùi những dòng không phải là dòng đầu của đoạn văn bản ra lề 1 tab
  •  Ctrl+A: Lựa chọn (bôi đen) toàn bộ nội dung file
  •  Ctrl+F: Tìm kiếm ký tự
  •  Ctrl+G (hoặc F5): Nhảy đến trang số
  •  Ctrl+H: Tìm kiếm và thay thế ký tự
  •  Ctrl+K: Tạo liên kết (link)
  •  Ctrl+]: Tăng 1 cỡ chữ
  •  Ctrl+[: Giảm 1 cỡ chữ
  •  Ctrl+W: Đóng file
  •  Ctrl+Q: Lùi đoạn văn bản ra sát lề (khi dùng tab)
  •  Ctrl+Shift+>:Tăng 2 cỡ chữ
  •  Ctrl+Shift+< Giảm 2 cỡ chữ
  •  Ctrl+F2 Xem hình ảnh nội dung file trước khi in
  •  Alt+Shift+S Bật/Tắt phân chia cửa sổ Window
  •  Ctrl+¿ (enter) Ngắt trang
  •  Ctrl+Home Về đầu file
  •  Ctrl+End Về cuối file
  •  Alt+Tab Chuyển đổi cửa sổ làm việc
  •  Start+D Chuyển ra màn hình Desktop
  •  Start+E Mở cửa sổ Internet Explore, My computer
  •  Ctrl+Alt+O Cửa sổ MS word ở dạng Outline
  •  Ctrl+Alt+N Cửa sổ MS word ở dạng Normal
  •  Ctrl+Alt+P Cửa sổ MS word ở dạng Print Layout
  •  Ctrl+Alt+L Đánh số và ký tự tự động
  •  Ctrl+Alt+F Đánh ghi chú (Footnotes) ở chân trang
  •  Ctrl+Alt+D Đánh ghi chú ở ngay dưới dòng con trỏ ở đó
  •  Ctrl+Alt+M Đánh chú thích (nền là màu vàng) khi di chuyển chuột đến mới xuất hiện chú thích
  •  F4 Lặp lại lệnh vừa làm
  •  Ctrl+Alt+1 Tạo heading 1
  •  Ctrl+Alt+2 Tạo heading 2
  •  Ctrl+Alt+3 Tạo heading 3
  •  Alt+F8 Mở hộp thoại Macro
  •  Ctrl+Shift++ Bật/Tắt đánh chỉ số trên (x2)
  •  Ctrl++ Bật/Tắt đánh chỉ số dưới (o2)
  •  Ctrl+Space (dấu cách) Trở về định dạng font chữ mặc định 
  •  Esc Bỏ qua các hộp thoại
  •  Ctrl+Shift+A Chuyển đổi chữ thường thành chữ hoa (với chữ tiếng Việt có dấu thì không nên chuyển)
  • Alt+F10 Phóng to màn hình (Zoom)
  •  Alt+F5 Thu nhỏ màn hình
  •  Alt+Print Screen Chụp hình hộp thoại hiển thị trên màn hình
  •  Print Screen Chụp toàn bộ màn hình đang hiển thị
Trên đây là 70 phím chức năng được sử dụng trong những phần mềm, đặc biệt trong những trình soạn thảo văn bản. ^_^ sử dụng nhiều sẽ nhớ và thao tác nhanh hơn.
-----------------------
Chúc các bạn vui !

10/24/12

Miễn phí 6 tháng Kaspersky PURE 2.0 Total Security

Miễn phí 6 tháng Kaspersky PURE 2.0 Total Security
Bước 1: Login facebook và truy cập
http://www.facebook.com/security/app_360406100715618

Bước 2: Tìm Kaspersky PURE Total Security
Bước 3: Nhấn Download again

Bước 4: Điền email


Bước 5: Check email
Bản Total Security đầy đủ chức năng hơn các bản khác.
-----------------------
Chúc mọi người thành công !

10/21/12

Hướng dẫn Download - Upload lên trên trang Web mediafire.com

Mediafire.com là một trang Web rất quen thuộc với người sử dụng Internet. Đây là trang Web có chức năng Upload file, thư mục miễn phí mà có chất lương đảm bảo, hơn nữa tốc độc Download file ở trang này cũng khá ổn định + nhanh.
Những lý do đó khiến nhiều người sử dụng Mediafire làm công cụ chia sẻ dữ liệu tin cậy, và lựa chọn nó làm nơi trung gian kết nối.
- Tuy nhiên, không phải ai cũng quen với cách sử dụng giao diện của trang Web. Nên bài viết này mình hướng dẫn các bạn sử dụng internet làm quen với nó. Bài viết mình giới thiệu các chức năng chính của Web đó:
  • Upload (tải lên) tải dữ liệu từ máy tính lên trang Mediafire
  • Download (tải xuống) tải dữ liệu từ trang mediafire xuống máy tính.
1. Upload (tải lên) tải dữ liệu từ máy tính lên trang Mediafire
Ở đây mình hướng dẫn đăng ký 1 tài khoản miễn phí, sau đó Upload.
- Tạo tài khoản: Vào trang chủ https://www.mediafire.com/ chọn "Singup"
Hướng dẫn sử dụng Download - Upload trên trang mediafire.com
Sau khi nhấp "Try It"  thì xuất hiện 1 trang Form để các bạn điền thông tin đăng ký vào. Các bạn điền thông tin đầy đủ và chọn "Creat Account & continue". Tạo tài khoản thành công thì có 1 số thông báo điều chỉnh (ví dụ điều chỉnh múi giờ...) nếu các bạn không điều chỉnh thì cứ tắt đi ^^.
- Upload (tải lên) tải dữ liệu từ máy tính của bạn lên mediafire.
Khi đăng nhập vào mediafire thì link của nó có dạng http://www.mediafire.com/myfiles.php#myfiles
Để upload dữ liệu:
Hướng dẫn sử dụng Download - Upload trên trang mediafire.com
Các bạn bấm dấu + để lựa chọn File upload từ máy tính lên Web, sau đó chọn "Begin Upload".
Lựa chọn "Create" cho các bạn tạo những tùy chọn có trong đó.
2. Download (tải xuống) tải dữ liệu từ trang mediafire xuống máy tính của bạn.
Mình lấy ví dụ là mình muốn tải cuốn sách TÀI LIỆU CCNA TIẾNG VIỆT có link tại Mediafire http://www.mediafire.com/view/?a4o1v431pft4z4g
Đây là dạng file có đuôi *.pdf dạng file này Mediafire có hỗ trợ cho xem trước nên giao diện để bấm chữ Download hơi khác tí. Như hình dưới:
Hướng dẫn sử dụng Download - Upload trên trang mediafire.com
Còn đối với dạng file khác thì giao diện có chung như sau để Download. Các bạn bấm:
Hướng dẫn sử dụng Download - Upload trên trang mediafire.com
Nhấp vào đó để tải nhé các bạn.
Cập nhật:
Để Share 1 thư mục (Folder) trên Mediafire.com thì các bạn chọn vào thư mục đó, sau đó chọn "Share Folder" như hình dưới đây
upload len trang mediafire
Sau đó có link Folder cho các bạn Copy

-------
ps: Trong 1 số trường hợp các bạn dùng IDM để Download, các bạn bấm vào Download mà thấy nó không bắt link hoặc bắt link chậm (trường hợp này rất ít) thì các bạn nhấp chuột phải vào chữ "Download" chọn "Download with IDM".
---------------------------------
Chúc các bạn thành công:

Tài liệu CCNA tiếng việt Full

Mình gửi tới các bạn cuốn tài liệu CCNA tiếng việt, tài liệu này rất chi tiết và đầy đủ cho 1 khóa học CCNA. Đây là cuốn sách có tính thực tế cao. Không chỉ là lý thuyết, sách còn tập trung rất nhiều vào demo cấu hình.

- Nội dung sách khá phong phú. Được xuất bản bởi nhà sách Minh Khai.
Các bạn xem và Download tài liệu  tại :
Tài liệu CCNA Tiếng việt .pdf
------------------------------
Chúc các bạn học tập tốt.
Nếu cần thêm tài liệu tham khảo thì comment để lại email cho mình nhé !

10/18/12

Hiển thị widget (tiện ích) chỉ ở trang chủ hoặc trang riêng biệt, tùy chọn

Một thủ thuật blogger rất hay tiếp theo mình giới thiệu tới các bạn là thủ thuật HIỂN THỊ WIDGET (TIỆN ÍCH) Ở TRANG CHỦ HOẶC TRANG RIÊNG BIỆT, TRANG TÙY CHỌN.
- Thủ thuật này mình cũng chỉ biết tới khi mình thiết kế blogger cho Gối handmade nên các bạn có xem demo thì xem ở đó nhé. Những sản phẩm hiển thị đó mình chỉ cho hiển thị ở trang chủ. Ngoài ra các bạn có thể chỉ định cho nó hiển thị ở các trang các bạn muốn. Trên blog mình có Slide mình cũng làm 1 Widget và chỉ chi hiển thị ở trang chủ.
- Bắt đầu vào thủ thuật, thủ thuật này khá đơn giản. Điều quan trọng nhất là các bạn phải xác minh được widget (tiện ích) đó nằm ở đâu trong mẫu chỉnh sửa HTML. ^^ Cái này mình toàn dùng trình duyệt Chrome để xem thông tin phần tử là thấy. Mình ví dụ trên Blog gối handmade  mình nhé:
Hiển thị Widget ở trang chủ
Xong phần xác định Widget. Tiếp theo các bạn vào Mẫu - Chỉnh sửa HTML và Click vào ô chọn "Mở rộng Mẫu Tiện ích"

  • Trường hợp 1: Chỉ hiển thị Widget (tiện ích) ở trang chủ. Các bạn tìm đoạn code mà thêm code màu đỏ, xanh như bên dưới:

<b:widget id='HTML1' locked='false' title='Sản phẩm có sẵn' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>

  • Trường hợp 2: Hiển thị widget ở tất cả các bài viết, trừ trang chủ: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:


<b:if cond='data:blog.pageType == "item"'>



  • Trường hợp 3: Chỉ hiển thị widget ở một trang riêng biệt nào đó: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.url == "URL của trang riêng biệt"'>


  • Trường hợp 4: Chỉ hiển thị widget ở các trang chính gồm trang chủ, các trang Label và Archive: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.pageType == "index"'>



  • Trường hợp 5: Chỉ hiển thị widget ở các trang lưu trữ: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:


<b:if cond='data:blog.pageType == "archive"'>

  • Trường hợp 6: Chỉ hiển thị widget ở tất cả các trường hợp trừ các trang lưu trữ: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.pageType ! == "archive"'>

  • Trường hợp 7: Chỉ hiển thị widget ở tất cả các trường hợp trừ các trang bài viết: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.pageType ! == "item"'>

  • Trường hợp 8: Chỉ hiển thị widget ở tất cả các trường hợp trừ trang chủ: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.url ! == data:blog.homepageUrl'>

  • Trường hợp 9: Chỉ hiển thị widget ở tất cả các trang trừ một trang riêng biệt nào đó: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.url ! == "Url của trang đặc biệt"'>

  • Trường hợp 10: Chỉ hiển thị widget ở tất cả các trang trừ hai trang riêng biệt nào đó trở lên: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.url ! == "Url của trang đặc biệt 1"'>
<b:if cond='data:blog.url ! == "Url của trang đặc biệt 2"'>

  • Trường hợp 11: Nếu bạn muốn hiển thị một thứ gì đó ở trang chủ và một thứ gì đó khác ở tất cả các trang: Bạn sử dụng lệnh điều kiện như thế này:


<b:if cond='data:blog.url == data:blog.homepageUrl'>
Đây là điều cần hiển thị ở trang chủ
<b:else/>
Đây là điều không hiển thị ở trang chủ
</b:if>

  • Trường hợp 12: Chỉ hiển thị widget ở một trang nhãn: Thay đoạn code màu đỏ ở trên bằng đoạn code sau đây:

<b:if cond='data:blog.url == "http://yourblogname.blogspot.com/search/label/Tennhan"'>

Trường hợp này chỉ hoạt động với tên nhãn không dấu như Blogger, CSS, Thuthuat, Thuvien (không dùng cho nhãn tiếng Việt). Đối với các nhãn có khoảng cách như Recent Posts thì phải đặt là Recent%20Posts (tức là thay khoảng cách bằng %20).
Các liên kết trang nhãn trong trường hợp này cũng không hoạt động được khi có đuôi ?max-results=
----------------------------
Nguồn: Huỳnh Nhật Hà
!
Chúc các bạn vui !

Download Microsoft Office 2007 full Keygen Crack - Bộ cài đặt

Một số bạn có gửi cho mình yêu cầu phần mềm Microsoft office 2007 full Crack + key. Ở đây mình có bản MS office 2007 EnterPrise (bản cài đặt đủ chức năng). Thực ra mình cũng không tính viết bài này, vì trên mạng có rất nhiều chia sẻ về phần mềm này. Nhưng có một số bạn nói là tải phải bản không có keygen hoặc Crack, hoặc bản "treo đầu dê bán thịt chó" nên có gửi thư cho mình muốn mình chia sẻ.
- Mình thì không có nhiều bản Microsoft office 2007 cho các bạn lựa chọn. Mình chỉ có 1 bản (công cụ mình chuyên đi cài máy giúp bạn) ^^. Nên có gì mong mọi người thông cảm.

office 2007 EnterPrise
Download microsoft office 2007 full crack
Download link Mediafire (MF):
Part 1 (Link Fshare cập nhật do bạn đọc báo lỗi)
Part 2
Part 3
Part 4
Part 5 (Link Fshare - Có bạn báo MF bị lỗi)
Part 6
Hoặc các bạn tải từ link Fshare mình đã Upload nên
Bộ cài đặt office 2007 full
- Khi Download xong các bạn chỉ cần giải nén part1 và tiến hành cài đặt.
Cài xong thì có thông báo của MS hỏi có updates gì gì đó cùng với hệ điều hành. Lựa chọn No Updates.
Nếu gặp bất kỳ lỗi nào về link. Mong các bạn hãy để lại comment báo cho mình.
Cảm ơn các bạn !
Tìm kiếm:
Download office 2007 full crack
Download office 2007 full keygen
Download office 2007 full crack key
-------------------------------------
chúc các bạn vui vẻ !

10/16/12

Code tooltip rê chuột phóng to hình ảnh cho Web - blog - blogspot

Code rê chuột phóng to hình ảnh cho Web - blog:
Khi truy cập vào một trang Web nào đó (đặc biệt là những trang bán hàng, giới thiệu sản phẩm) các bạn thấy rất nhiều hình ảnh sản phẩm, ở dưới dạng nhỏ thôi. Mình muốn chọn sản phẩm nào đó thì Click vào, hoặc rê chuột vào là hình ảnh phóng to, xem được hình lớn hơn.
- Bài viết này mình giới thiệu các bạn về code đó, code tooltip rê chuột phóng to hình ảnh. Cái này tương đối cần thiết cho việc thiết kế Website, blogger, Wordpress...
Code zoom hình ảnh cho Website blog, sử dụng javascript cho zoom images
Zoom hình ảnh
- Xem DEMO TẠI ĐÂY
Phần Demo trên mình chỉ giữ lại hình ảnh, chứ không thêm miêu tả, chi tiết... Bạn nào muốn thêm thì lát coi ở Code mình giới thiệu có chỉnh sửa nhé.
Download code
Một số chỉnh sửa:
Trong file ddimgtooltip.js ngay ở những dòng đầu các bạn chú ý tới đoạn code

tooltips[0]=["http://3.bp.blogspot.com/-MZyOs_2-azI/UG-gUZ6hmNI/AAAAAAAABZ4/NnsEmnzAnY0/s1600/termviewer1.JPG", "Welcome to my blog:
http://nguoinhaque0909.blogspot.com", {background:"#FFFFFF", color:"black", border:"5px ridge darkblue"}]
tooltips[1]=["http://3.bp.blogspot.com/-MZyOs_2-azI/UG-gUZ6hmNI/AAAAAAAABZ4/NnsEmnzAnY0/s1600/termviewer1.JPG", " Bai viet gioi thieu TermViewer - blog PIT Mang may tinh", {background:"#DDECFF", width:"200px"}]
tooltips[2]=["https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLsJdqIB-Setb8x0PQ8eL0fIZ5tOXLc0ENdrqvxkRosk-vRzUr9j58UWIjVCYjdGPhVDQ9CCvEBQwK7VwFTabzSe6xIhwqUMm8GZlRpc5EZT-cZJvWSIVbBFrkbhenS2QDk4PGUiql4PI/s720/1.jpg"]
tooltips[3]=["http://3.bp.blogspot.com/-MZyOs_2-azI/UG-gUZ6hmNI/AAAAAAAABZ4/NnsEmnzAnY0/s1600/termviewer1.JPG", "Ket noi cong dong Blogger", {background:"white", font:"bold 12px Arial"}]

- Những đoạn bôi đậm là những phần riêng tư, dành để quảng cáo site mình (hehe) nên khi các bạn dùng thì thay đổi nhé, mà giữ nguyên thì càng tốt. ^^
Code rê chuột phóng to hình ảnh bằng CSS các bạn tham khảo tại bài viết
http://www.itviet360.com/2012/12/css-re-chuot-phong-to-hinh-anh-cho-web-blog.html
------------------------------------------------
Các bạn cũng có thể chèn trực tiếp code java và css vào trong 1 file html.
Chúc các bạn vui vẻ !

10/15/12

Sử dụng comments Facebook (FB) cho Website - blog - blogger

Bài viết hôm nay mình giới thiệu các bạn 1 tiện ích cho Website, blogger đó là chức năng bình luận bài viết sử dụng comments của Facebook. Cách làm này mình tình cờ khi vào Alexa để theo dõi thống kê của Blog mình.
Dạng comments của facebook cho Web, blog, blogger có dạng như sau:
Comments facebook cho Website, blog
Để sử dụng các bạn làm theo các bước sau:
Chức năng comments facebook cho Web, blog
Trong đó:
- URL to comment on: ghi địa chỉ Web, blog của bạn.
- Number of posts: Số comments hiển thị.
- Width: Độ rộng của khung comments.
- Color Scheme: Màu nền comments.
Sau khi đã ghi thông tin thì các bạn bấm "Get Code" để lấy Code và chèn vào theo hướng dẫn của Developer (đơn giản nhé)
HƯỚNG DẪN SỬ DỤNG COMMENT FACEBOOK CHO BLOGSPOT
Hướng dẫn 1: Chỉ có lựa chọn Comment Facebook cho blog của bạn
DEMO
Bước 1: Tắt chức năng bình luận sẵn có của blogger
Lựa chọn lần lượt theo 4 chỉ dẫn như hình dưới
comment facebook cho blogger, comment facebook blogspot

Bước 2: Vào phần Mẫu (Template) -> chỉnh sửa HTML (Edit HTML) -> nhấp chọn Mở rộng tiện ích mẫu. => Chèn đoạn code bên dưới vào trước thẻ đóng </head>

<script type='text/javascript'>
//<![CDATA[
var purl= location.href;
var fb_href = purl.substring(0,purl.indexOf(".html")+5);
var fbcm ='<div class="fb-comments" data-href="'+fb_href+'" data-num-posts="5" data-width="600"></div>';
//]]>
</script>

Trong đó:
data-href: là link của trang comment.
data-num-posts: Số comment hiển thị
data-width: Chiều rộng của comment
Bước 3: Chèn đoạn code sau dưới thẻ <body>

<div id='fb-root'/>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Bước 4: Tìm đoạn Code bên dưới:

<b:include data='post' name='post'/>

Chèn đoạn code này ngay dưới đoạn vừa tìm được

<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
document.write(fbcm);
</script>
</b:if>

Bước 5: Lưu mẫu (Save Template) và xem kết quả :)

Hướng dẫn 2: Mặc định là Form comment của Blogspot, nếu muốn comment = Facebook thì click chuyển Form.
Bước 1: Tạo 1 App trên FB tại https://developers.facebook.com/apps/?action=create
a. Điền tên vào bảng Popup, giá trị Vaild cho thấy tên ứng dụng được dùng
comment cho blogger, huong dan tao comment cho blogspot

- Trong trường hợp tài khoản chưa được xác minh thì hãy xác minh, FB yêu cầu xác minh qua Mobile hoặc Credit Card.
comment cho blogger, huong dan tao comment cho blogspot

 Mình gặp trục trặc là ở bước này mình bấm yêu cầu gửi Code xác minh qua điện thoại (mạng viettel) mà chờ ko thấy gửi, soạn tin nhắn F gửi 9224 là có Code ngay. ^^
- Xác nhận thành công, các bạn bắt đầu với Deverlop
comment cho blogger, huong dan tao comment cho blogspot
Tiếp theo các bạn lựa chọn ứng dụng và chọn Edit setting như hình dưới đây
comment cho blogger, huong dan tao comment cho blogspot

Ở bước tiếp theo các bạn chú ý tới phần mũi tên mình chỉ xuống. đó là App ID để lát nữa mình dùng trong code. Các bạn điền theo mẫu hình dưới đây:
comment cho blogger, huong dan tao comment cho blogspot
LƯU LẠI
-----------Xong bước đăng ký App FB, tiếp theo chúng ta tiến hành chỉnh sửa Template

Bước 2: Tiến hành chỉnh sửa Template
1: Dán code bên dưới sau thẻ <head>

<meta expr:content='data:blog.pageTitle' property='og:title'/>
<meta expr:content='data:blog.url' property='og:url'/>
<meta content='article' property='og:type'/>
<meta content='Link anh' property='og:image'/>
<meta content='App ID' property='fb:app_id'/>
<script src='http://connect.facebook.net/en_US/all.js#xfbml=1'/>
<script src='http://code.jquery.com/jquery-latest.js'/>
<script type='text/javascript'>
function commentToggle(selectTab) {
$(".comments-tab").addClass("inactive-select-tab");
$(selectTab).removeClass("inactive-select-tab");
$(".comments-page").hide();
$(selectTab + "-page").show();
}
</script>

Link anh: là ảnh hiển thị của bạn. Tốt nhất chọn ảnh có kích thước 30x30px
App ID: là số ID của App ở trên mình đã lưu ý, chỗ hình mũi tên chỉ vào.
2: Tìm <html
Và thay thế bằng <html xmlns:fb='http://www.facebook.com/2008/fbml'
3: Dán đoạn code dưới đây ngay trên ]]></b:skin>

.comments-page {
background-color: #f2f2f2;
width:520px
}
#blogger-comments-page {
padding: 0px 5px;
display: none
}
.comments-tab {
float: left; padding: 5px;
margin-right: 3px;
cursor: pointer;
background-color: #f2f2f2
}
.comments-tab-icon {
height: 14px;
width: auto;
margin-right: 3px
}
.comments-tab:hover {
background-color: #eeeeee
}
.inactive-select-tab {
background-color: #d1d1d1
}

4: Tìm đoạn
<div class='comments' id='comments'>
Và dán code dưới đây ngay sau nó


<div class='comments-tab' id='fb-comments' onclick='javascript:commentToggle("#fb-comments");' title='Comments made with Facebook'>
<img class='comments-tab-icon' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRM7O-5r0sMFID96B9_iHokv9sNZZcj_ExKcY3UuMrai33rpaYLF4VgBaXaFDMW-t5AT7dsGXMkBbc1z2DebwEFhqnrorOLDOHWdFY4hfvT9_RJjo2s3BJK3z5wJaW9y44B1xF_6NOOIA/s1600/Facebook-icon-namkna-blogspot-com.png'/>
<fb:comments-count expr:href='data:post.url'/> Comments
</div>
<div class='comments-tab inactive-select-tab' id='blogger-comments' onclick='javascript:commentToggle("#comments");' title='Comments from Blogger'>
<img class='comments-tab-icon' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX3bx67GEguWMp-9XasvU92wUr_Qu8weADKknFlM-B7aG4AMRUHnC74WE46EhskkX1ArDwlRzoiRW3TqU51cd3rCLpK71FEVGrkv_EmU-RJxMRBT1j2z2ag_p9l2U0h30e_W__Kl1EOdQ/s1600/blogger-icon_namkna-blogspot-com.png'/> <data:post.numComments/> Comments
</div>
<div class='clear'/>
<div class='comments-page' id='fb-comments-page'>
<b:if cond='data:blog.pageType == "item"'>
<div id='fb-root'/>
<fb:comments colorscheme='light' expr:href='data:post.canonicalUrl' expr:title='data:post.title' expr:xid='data:post.id' width='520'/>
</b:if>
</div>

5: Lưu mẫu (Save Template) và xem kết quả :)
Chúc các bạn thành công !

Nén File - Chia nhỏ File nén trong Winrar - Hướng dẫn

Phần mềm nén File Winrar chắc trên máy tính ai cũng sử dụng, vì hầu hết các File truyền tải dữ liệu qua mạng đều được nén trước khi gửi đi. Tuy nhiên, có 1 số trang Web giới hạn độ lớn dung lượng khi Upload file lên đó.
Ví dụ như trang Mediafire (một trang được khá nhiều user sử dụng) tuy nhiên với acc free thì bị giới hạn độ lớn dung lượng khi Upload lên.
Bài viết này mình hướng dẫn tiện ích của Winrar, chức năng chia nhỏ file nén trong Winrar.
- Ở đây mình có một Folder "Microsoft Office 2007 Full" khoảng 560 MB. Mình muốn Upload lên trang Mediafire để gửi cho một số bạn có yêu cầu nên mình đã chia nhỏ file nén. Tiện thể viết bài hướng dẫn chia nhỏ File nén luôn.
- Các bước thực hiện:
  • Đi đến thư mục cần nén và chia nhỏ file nén. Nhấp chuột phải chọn "Add to archive.."
b1 : Chia nhỏ file nén với Winrar
Cửa sổ Archive name and parameters hiện ra. Ở cửa sổ này có khác nhiều lựa chọn, tính năng của Winrar. Tuy nhiên ở đây mình chỉ nói đến tính năng chia nhỏ file nén với Winrar nên gồm các thao tác lựa chọn sau:
Ở khung viết "Archive name" các bạn điền tên file nén. ví dụ ở đây mình muốn tên File nén là office2007
Tiếp theo là khung mình khoanh mầu xanh bên dưới là  "Split to volumes, size" có các lựa chọn đơn vị "B, KB, MB, GB" các bạn lựa chọn giá trị file chia nhỏ mình muốn sử dụng. Ví dụ ở đây mình để là 95 MB để tiện upload lên Mediafire.
b2: Chia nhỏ file nén với Winrar
Bấm "OK" các bạn được các File chia nhỏ dạng office2007.part1.rar     office2007.part2.rar  cho đến office2007.part6.rar
- Rất tiện lợi là khi giải nén thì các bạn chỉ cần giải nén 1 file office2007.part1.rar
-----------------------------------
Chúc các bạn thành công !

10/13/12

Cơ chế NAT - PAT, tìm hiểu, cấu hình (phần 2)

Cơ chế NAT - PAT, tìm hiểu, cấu hình (phần 2). Bài viết này mình viết tiếp theo về phần Tìm hiểu, cấu hình, cơ chế NAT - PAT
4.2. Chuyển đổi động
Để Chuyển đổi động địa chỉ nguồn bên trong, chúng ta cấu hình theo các bước như sau:

Bước Thực hiện Ghi chú
1 Xác định dải địa chỉ đại diện bên ngoài

Rourter (config) # ip nat pool name start-ip

end-ip [netmask netmask /prefix-length
prefix-length]
Trong chế độ cấu hình

toàn cục, gõ lệnh no ip

nat pool name để xóa dải
địa chỉ đại diên bên ngoài.
2 Thiết lập ACL cơ bản cho phép những địa

chỉ nội bộ bên trong nào được chuyển đổi.

Router (config) # access-list access-list-
number permit source [source-wildcard]
Trong chế độ cấu hình

toàn cục, gõ lệnh no

access-list    access-list-
number để xóa ACL đó.
3 Thiết lập mối liên quan giữa địa chỉ nguồn

đã được xác định trong ACL ở bước trên với

dải địa chỉ đại diện bên ngoài:

Router (config) # ip nat inside source list
access-list-number pool name
Trong chế độ cấu hình

toàn cục, gõ lênh no ip

nat inside source để xóa
sự chuyển đổi động này
4 Xác định cổng kết nối vào mạng nội bộ
Router (config) # interface type number
Sau khi gõ xong lệnh
interface, dấu nhắc của

dòng lệnh sẽ chuyển đổi
từ config sang (config-if)#
5 Đánh dấu cổng này là cổng kết nối vào mạng

nội bộ.
Router (config-if) # ip nat inside
6 Thóat khỏi chế độ cổng hiện tại.
Router (config) # exit
7 Xác định cổng kết nối ra bên ngoài.
Router (config) # interface type number
8 Đánh dấu cổng này là cổng kết nối ra bên

ngoài.
Router (config) # ip nat outside
Danh sách điều khiển truy cập (ACL – Access Control List) cho phép khai báo những địa chỉ nào được chuyển đổi. Bạn nên nhớ là kết thúc một ACL luôn có câu lệnh ẩn cấm tuyệt đối để tránh những kết quả không dự tính được khi một ACL có quá nhiều điều kiện cho phép. Cisco khuyến cáo là không nên dùng điều kiện cho phép tất cả permit any trong ACL sử dụng cho NAT vì câu lệnh này làm hao tốn quá nhiều tài nguyên của Router và do đó có thể gây ra sự cố mạng.
Hình 8
Xét ví dụ hình 1.1.4.c: Dải địa chỉ công cộng đại diện ben ngoài có tên là nat-pool1, bao gồm các địa chỉ từ 179.9.8.80 đến 179.9.95. Địa chỉ nội bộ bên trong được phép chuyển đổi được định nghĩa trong access-list 1 là 10.1.0.0 – 10.1.0.255.
Như vậy, gói dữ liệu nào trong mạng nội bộ đi ra ngoài Internet có địa chỉ nguồn
nằm trong dải địa chỉ 10.1.0.0 – 10.1.0.255 sẽ được chuyển đổi địa chỉ nguồn sang một trong bất kỳ địa chỉ nào còn trống trong dải địa chỉ công cộng 179.9.8.80 - 179.9.8.95. Host 10.1.1.2 sẽ không được chuyển đổi địa chỉ vì địa chỉ của nó không được cho phép trong acces-list 1, do đó nó không truy cập được Internet.
Overloading hay PAT
Overloading được cấu hình theo hai cách tùy theo địa chỉ IP công cộng được cấp phát như thể nào. Một ISP có thể cho một hệ thống mạng của khách hàng sử dụng chung một địa chỉ IP công cộng duy nhất, đia jchỉ IP công cộng này chính là địa chỉ của cổng giao tiểp trên Router nối về ISP. Sau đây là ví dụ cấu hình cho tình huống này:

Router (config) # access-list 1 permit 10.0.0.0 0.0.255.255
Router (config) ip nat inside source list 1 interface serial0/0 overload

Bước Thực hiện Ghi chú
1 Tạo ACL để cho phép những địa chỉ nội bộ

nào được chuyển đổi.

Router(config)  #  access-list  acl-number
permit source [source-wildcard]
Trong chế độ cấu hình

toàn cục, gõ lệnh no

access-list    access-list-

number để xóa access-list
tương ứng.
2A Thiết lập mối liên quan giữa địa chỉ nguồn đã

được xác định trong access-list ở bước trên với

địa chỉ đại diện là địa chỉ của cổng kết nối với

bên ngoài.

Router (config) # ip nat inside source list acl-
number interface interface overload
Trong chế độ cấu hình

toàn cục, gõ lệnh no ip

nat inside source để xóa

sự chuyển đổi động này.

Từ khóa overload để cho
phép chạy PAT
Hoặc
2B
Khai báo dải địa chỉ đại diện bên ngoài dùng

overload.

Router (config) ip nat pool name start-ip end-

ip

[netmask netmask / prefix-length prefix-

length]

Thiết lập chuyển đổi overload giữa địa chỉ nội

bộ đã được xác định trong ACL ở bước 1 với
dải địa chỉ đại diện bên ngoài mới khai báo ở trên.
Router (config) # ip nat inside source list acl- number pool name overload
3 Xác định cổng kết nối với mạng nội bộ.

Router (config) # interface type number
Router (config-if) # ip nat inside
Sau khi gõ lệnh interface,

dấu nhắc của dòng lệnh sẽ

được đổi từ (config)#
sang (config-if)#
4 Xác định cổng kết nối với bên ngoài.

Router (config) # interface type number
Router (config-if) # ip nat outside.
Một cách khác để cấu hình Overload là khi ISP cung cấp một hoặc nhiều địa chỉ IP công cộng để cho hệ thống mạng khách hàng sử dụng làm dải địa chỉ chuyển đổi PAT. Cấu hình ví dụ cho tình huống này như sau:
• Xác định địa chỉ nội bộ được phép chuyển đổi là 10.0.0.0/16:

Router (config) # access-list 1 permit 10.0.0.0.0.0.255.255

• Khai báo dải địa chỉ đại diện bên ngoài với tên là nat-pool2, bao gồm các địa
chỉ trong subnet 179.9.8.20/28:

Router (config) # ip nat pool nat-pool2 179.9.8.20 netmask 255.255.255.240

• Thiết lập sự chuyển đổi Overload địa chỉ nội bộ được xác định trong access-list 1 với dải địa chỉ đại diện nat pool2:

Router (config) # ip nat inside source list 1 pool nat-pool2 overload

Hình 9
Xét ví dụ hình 1.1.4.d: địa chỉ nội bộ bên trong được phép chuyển đổi được xác định trong access-list 1 là 192.168.2.0/24 và 192.168.3.0/24. Địa chỉ đại diện bên ngoài là địa chỉ của cổng serial 0, cổng kết nối ra Internet. Như vậy phải toàn bộ địa chỉ bên trong được chuyển đổi PAT với một địa chỉ IP đại diện duy nhất là địa chỉ của cổng kết nối ra Internet, cổng serial 0.
5. Kiểm tra cấu hình PAT
Sau khi NAT đã được cấu hình, chúng ta có thể dùng lệnh clear và show để kiểm tra hoạt động của NAT.

Mặc định, trong bảng chuyển đổi NAT động, mỗi một cặp chuyển đổi địa chỉ sẽ bị xóa đi sau một khoảng thời gian không sử dụng. Với chuyển đổi không sử dụng chỉ số Port thì khoảng thời gian mặc định là 24 giờ. Chúng ta có thể thay đổi khoảng thời gian này bằng lệnh ip nat translation timeout timeout_seconds trong chế độ cấu hình toàn cục.
Các thông tin về sự chuyển đổi có thể được hiển thị bằng các lệnh sau:
Lệnh Giải Thích
Clear ip nat translation * Xóa mọi cặp chuyển đổi địa chỉ động
trong bảng NAT.
Clear ip nat translation inside global-
ip local-ip [outside local-ip global-ip]
Xóa một cặp chuyển đổi địa chỉ động bên trong hoặc cả bên trong và bên ngoài tương ứng với địa chỉ cụ thể được khai báo trong câu lệnh.
Clear ip nat translation protocol inside

global-ip global-port local-ip local-port

[outside local-ip local-port global-ip
global-port]
Xóa một cặp chuyển đổi địa chỉ động
mở rộng.
Show ip nat translations Hiển thị bảng NAT đang hoạt động.
Show ip nat statistics Hiển thị trạng thái hoạt động của NAT.

Router#show ip nat translations
Pro inside global  Inside local   Outside local     Outside global
172.16.131.1       10.10.10.1       ------              ------

Hình 10
Chúng ta có thể dùng lệnh show run để kiểm tra lại các giá trị cần khai báo trong các câu lệnh cấu hình NAT, access-list, interface.
-----------------------------------------
Phần đặc điểm + những vấn đề hạn chế của NAT mình sẽ gửi tới các bạn sau.

!
theo tài liệu CCNA.

10/12/12

Kho template blogger - Blogspot free (slider) đẹp - Wordpress

Thời gian gần đây, template blogger - blogspot luôn có những mẫu templates mới hấp dẫn. Đặc biệt được chú ý tới là những mẫu temlate có slide chạy hình, bài viết. Chỉnh sửa giao diện dễ dàng tùy theo ý muốn của blogger. Hơn nữa những mẫu template này hoàn toàn miễn phí và dễ sử dụng.
Bài viết này mình xin được giới thiệu 1 số trang cung cấp, cho download template đẹp, miễn phí, và rất nhiều lựa chọn cho các blogger (ngoài những template do google cung cấp).
1.       http://btemplates.com/
Trang này gần như tổng hợp tất cả các mẫu template free có mặt trên "thị trường" blogger. Mình rất ấn tượng với nhiều mẫu ở trang này. Đặc biệt là các mẫu có dạng Slider, dạng bài viết công nghệ, tin tức, sản phẩm. Nói chung các bạn tìm đến trang này chắc chắn sẽ lấy được template cho riêng mình.
       Một số mẫu template có slider rất đẹp:
iTech - Mẫu này rất phù hợp cho dân công nghệ
Trang này cũng được xếp vào trang cung cấp những template miễn phí tốt nhất dành cho Blogger, Wordpress. Những mẫu template của trang này cực kì ấn tượng.
Tuy nhiên một số template ở trang này có phí.
Các bạn chọn những mẫu Free cho mình nhé.
------------------------------------------
2 trang trên theo mình biết thì cung cấp lớn nhất.
Còn 1 số trang các bạn có thể tham khảo thêm, những template ở trang tham khảo này không nhiều và phong phú như 2 trang trên.


============================================
Khi đã có template ưng ý rồi, việc của mình là làm thế nào cho nó theo ý mình nữa là OK nhé.
Bạn nào có thắc mắc gì về vấn đề chỉnh sửa Template thì liên hệ với mình nhé. Mình cũng không biết hết đâu nhưng với một số chỉnh sửa cơ bản thì mình sẽ hỗ trợ được các bạn.
!
Chúc các bạn vui. 

10/11/12

Cơ chế NAT - PAT, tìm hiểu, cấu hình (phần 1)

Vấn đề chúng ta  phải hiểu được NAT là gì? Cơ chế NAT có tác dụng gì, hoạt động của NAT như thế nào?
Ở bài viết về Cơ Chế NAT này mình sẽ đi sâu vào tìm hiểu những vấn đề về NAT.
Phần bài viết này trình bày bao gồm các vấn đề về NAT:
- Khái niệm NAT - PAT
- Chia địa chỉ mạng với NAT - PAT
- Đặc điểm của NAT - PAT
- Cấu hình NAT - PAT
- Những vấn đề của NAT - PAT
1. Khái niệm NAT - PAT:
NAT (Network Address Translation) là một cơ chế để tiết kiệm địa chỉ IP đăng ký trong một mạng lớn và giúp đơn giản hóa việc quản lý địa chỉ IP. Khi 1 gói dữ liệu được định tuyến trong 1 thiết bị mạng, thường là firewall hoặc các router biên, địa chỉ IP nguồn sẽ được chuyển đổi từ địa chỉ mạng riêng thành địa chỉ IP công cộng định tuyến được. Điều này cho phép gói dữ liệu được truyền đi trong trong mạng công cộng, ví dụ như Internet. Sau đó, địa chỉ công cộng trong gói trả lời lại được chuyển đổi thành địa chỉ riêng để phát vào trong mạng nội bộ. Một dạng của NAT, được gọi là PAT(Port Address Translation), cho phép nhiều địa chỉ riêng được dịch sang một địa chỉ công cộng duy nhất.
2. Chia địa chỉ với NAT - PAT
2.1 Địa chỉ riêng (Private address)
RFC 1918 dành riêng 3 dải địa chỉ IP sau:
• 1 địa chỉ lớp A: 10.0.0.0/8.
• 16 địa chỉ lớp B: 172.16.0.0 – 172.31.255.255 (172.16.0.0/12).
• 256 địa chỉ lớp C: 192.168.0.0-192.168.255.255 (192.168.0.0/16).
Những địa chỉ trên chỉ dùng cho mạng riêng, mạng nội bộ. Các gói dữ liệu có địa chỉ như trên sẽ không định tuyến được trên Internet. Địa chỉ Internet công cộng phải được đăng ký với một công ty có thẩm quyền Internet, ví dụ như American Registry for Internet Numbers (ARIN) hoặc Réseaux IP Européens (RIPE) và The Regional Internet Registry phụ trách khu vực Châu Âu và Bắc Phi. Địa chỉ IP công cộng còn có thể được thuê từ một nhà cung cấp dịch vụ Internet (ISP). Địa chỉ IP riêng được dành riêng và có thể được sử dụng bởi bất kỳ ai. Điều này có nghĩa là có thể có 2 mạng hoặc 2 triệu mạng sử dụng cùng một địa chỉ mạng riêng. Router trên Internet sẽ không định tuyến các địa chỉ RFC 1918.ISP cấu hình Router biên ngăn không cho các lưu lượng của địa chỉ riêng được phát ra ngoài.
NAT mang đến rất nhiều lợi ích cho các công ty và Internet. Trước đây, khi không
có NAT, một máy tính không thể truy cập Internet với địa chỉ riêng. Bây giờ, sau
khi có NAT, các công ty có thể cấu hình địa chỉ riêng cho một hoặc tất cả các máy
tính và sử dụng NAT để truy cập Internet.
2.2 Giới thiệu NAT - PAT
NAT được thiết kế để tiết kiệm địa chỉ IP và cho phép mạng nội bộ sử dụng địa chỉ IP riêng. Các địa chỉ IP riêng sẽ được chuyển đổi sang địa chỉ công cộng định tuyến được bằng cách chạy phần mềm NAT đặc biệt trên thiết bị mạng. Điều này giúp cho mạng riêng càng được tách biệt và giấu được địa chỉ IP nội bộ.
NAT thường được sử dụng trên Router biên của mạng một cửa. Mạng một cửa là mạng chỉ có một kết nối duy nhất ra bên ngoài. Khi một host nằm trong mạng một cửa muốn truyền dữ liệu cho một host nằm bên ngoài nó sẽ truyền gói dữ liệu đến Router biên giới. Router biên giới sẽ thực hiện tiến trình NAT, chuyển đổi địa chỉ riêng của host nguồn sang một địa chỉ công cộng định tuyến được. Trong thuật ngữ NAT, mạng nội bộ có nghĩa là tập hợp các địa chỉ mạng cần chuyển đổi địa chỉ. Mạng bên ngoài là tất cả các địa chỉ khác còn lại.
Mạng một cửa
Cisco định nghĩa các thuật ngữ NAT như sau:
• Địa chỉ cục bộ bên trong (Inside local address): là địa chỉ được phân phối cho các host bên trong mạng nội bộ. Các địa chỉ này thường không phải là địa chỉ được cung cấp bởi InterNIC (Internet Network Information Center)hoặc bởi nhà cung cấp dịch vụ Internet. Địa chỉ này thường là địa chỉ riêng RFC 1918.
• Địa chỉ toàn cục bên trong (Inside global address): là địa chỉ IP hợp pháp được cung cấp bởi InterNIC hoặc bởi nhà cung cấp dịch vụ Internet. Địa chỉ này đại diện cho một hoặc nhiều địa chỉ nội bộ bên trong đối với thế giới bên ngoài.
• Địa chỉ cục bộ bên ngoài (Outside local address): là địa chỉ riêng của host nằm bên ngoài mạng nội bộ.
• Địa chỉ toàn cục bên ngoài (Outside global address): là địa chỉ công cộng hợp pháp của host nằm bên ngoài mạng nội bộ
Hình 2: Host nội bộ 10.0.0.3 muốn gửi gói dữ liệu cho một host nằm ngoài 128.23.2.2. Gói dữ liệu được gửi tới router biên giới RTA.
Hình 3: RTA nhận thấy gói dữ liệu này đươc gửi ra ngoài internet nên nó thực hiên tiến trình NAT, chuyến đổi địa chỉ nguồn 10.0.0.3 thành địa chỉ công cộng là 179.9.8.80. Sauk hi thực hiện NAT xong, gói dữ liệu từ RTA đi ra sẽ có địa chỉ nguồn là một địa chỉ công cộng hợp pháp 179.9.8.80.
Hình 4: Sau đó server 128..23.2.2 có thể gửi lại một gói trả lời. Khi đó gói trả lời sẽ có địa chỉ đích là 179.9.8.80.
Hình 5: RTA nhận thấy gói dữ liệu này được gửi từ bên ngoài vào trong mạng nội bộ. RTA sẽ tìm trong bảng NAT để ánh xạ từ địa chỉ đích công cộng sang địa chỉ riêng tương ứng. Sau khi thực hiên NAT xong, gói dữ liệu từ RTA phát vào trong mạng nội bộ sẽ có địa chỉ đích là địa chỉ riêng của host đích 10.0.0.3.
3. Đặc điểm của NAT và PAT
Chuyển đổi NAT rất hữu ích cho nhiều mục đích khác nhau và có thể chuyển đổi động hoặc cố định. NAT cố định được thiết kế để ánh xạ một-một, từ một địa chỉ nội bộ sang một địa chỉ công cộng tương ứng duy nhất. Điều này rất tốt đối với những host cần phải có địa chỉ nhất định để truy cập từ Internet. Những host này có thể là các server toàn hệ thống hoặc các thiết bị mạng.

NAT động được thiết kế để ánh xạ một địa chỉ IP riêng sang một địa chỉ công cộng một cách tự động. Bất kỳ địa chỉ IP nào nằm trong dải địa chỉ IP công cộng đã được định trước đều có thể được gán cho một host bên trong mạng. Overloading hoặc PAT có thể ánh xạ nhiều địa chỉ IP riêng sang một địa chỉ IP công cộng vì mỗi địa chỉ riêng được phân biệt bằng số port.

PAT sử dụng số port nguồn cùng với địa chỉ IP riêng bên trong để phân biệt khi chuyển đổi. Số port được mã hóa 16 bit. Do đó có tới 65.536 địa chỉ nội bộ có thể được chuyển đổi sang một địa chỉ công cộng. Thực tế thì số lượng port có thể gán cho một địa chỉ IP là khoảng 4000 port. PAT sẽ cố gắng giữ nguyên số port nguồn ban đầu. Nhưng nếu số port này đã bị sử dụng thi PAT sẽ lấy số port còn trống đầu tiên trong các nhóm port 0-511, 512-1023, 1024-65535.

Khi không còn số port nào còn trống và vẫn còn địa chỉ IP công cộng khác đã được cấu hình thì PAT sẽ chuyển sang địa chỉ IP công cộng kế tiếp và bắt đàu xác định số port nguồn như trên. Quá trình này sẽ được thực hiện cho đến khi nào hết số port và địa chỉ IP công cộng còn trống.
NAT cung cấp những lợi điểm sau:
• Không cần phải gán địa chỉ IP mới cho từng host khi thay đổi sang một ISP mới. Nhờ đó có thể tiết kiệm được thời gian và tiền bạc.
• Tiết kiệm địa chỉ thông qua ứng dụng ghép kênh cấp độ port. Với PAT, các host bên trong có thể chia sẻ một địa chỉ IP công cộng để giao tiếp với bên ngoài. Với cách cấu hình này, chúng ta cần rất ít địa chỉ công cộng, nhờ đó có thể tiết kiệm địa chỉ IP.
• Bảo vệ mạng an toàn vì mạng nội bộ không để lộ địa chỉ và cấu trúc bên trong ra ngoài.
4.  Cấu hình NAT - PAT
4.1 Chuyển đổi cố định
Để cấu hình chuyển đổi cố định địa chỉ nguồn bên trong, chúng ta cấu hình các bước như sau:

Bước Thực hiện Ghi chú
1 Thiết lập mối quan hệ chuyển đổi giữa địa chỉ nội bộ bên trong và địa chỉ đại diện bên ngoài

Router (config) # ip nat inside
source static local-ip global-ip
Trong chế độ cấu hình toàn cục, bạn dùng câu lệnh 
no ip nat inside source static
để xóa sự chuyển đổi địa chỉ cố định.
2 Xác định cổng kết nối vòa mạng bên trong.
Router(config) # interface type number
Sau khi gõ lệnh interface, dấu nhắc của dòng lệnh sẽ chuyển từ (config) # sang (config-if) #
3 Đánh dấu cổng này là cổng kết nối vào mạng nội bộ bên trong.
Router (config-if) # ip nat inside
4 Thóat khỏi chế độ cấu hình cổng hiện tại.
Router (config-if) # exit
5 Xác định cổng kết nối ra mạng công cộng bên ngoài.
Router (config) # interface type number
6 Đánh dấu cổng này là cổng kết nối ra mạng công cộng bên ngoài.
Router (config-if) # ip nat outside


Hình 6: Sự chuyển đổi địa chỉ sẽ được thưc hiện giữa hai cổng inside và outside
Hình 7: Cấu hình NAT chuyển đổi cố định từ địa chỉ 10.1.1.2 sang 192.168.1.2. Khi có một gói dữ liệu từ host 10.1.1.2 được gửi ra ngoài internet,router GW sẽ chuyển đổi địa chỉ nguồn 10.1.1.2 của gói dữ liệu sang địa chỉ 192.168.1.2 trước khi phát gói ra cổng s0.
Xem tiếp phần 2