• Kiến thức
  • Network
  • Security
  • Software
  • Thủ thuật
  • Tin học văn phòng
  • Tin tức
  • Mail ảo tạm thời miễn phí
  • Tools tra cứu thông tin
AnonyViet
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
AnonyViet
No Result
View All Result

Viết chương trình Xoá các File trùng lặp bằng Python

Ellyx13 by Ellyx13
22/10/2020 - Updated on 24/07/2025
in Code
A A
2

Mục lục bài viết

  1. Giải pháp
  2. Nguyên lý hoạt động
  3. Code xoá các File trùng lặp bằng Python
    1. Ví dụ
  4. Chúng ta Hash file như thế nào?
    1. Băm file
    2. Ví dụ
  5. Cách tạo ứng dụng xoá các File trùng lặp
    1. Kết quả
  6. Câu hỏi thường gặp
    1. Làm thế nào chương trình này tìm và xóa các file trùng lặp?
    2. Chương trình hỗ trợ loại file nào?
    3. Tôi có thể tùy chỉnh kích thước khối (block size) khi băm file không?

Bạn quá lo âu vì có nhiều file bị trùng lặp trên ổ đĩa khiến chiếm dung lượng bộ nhớ? Nhưng khi tìm kiếm và xoá chúng theo cách thủ công lại quá tẻ nhạt. Tiếp tục Seri python, hôm nay, mình sẽ tiếp tục hướng dẫn các bạn cách xoá các File trùng lặp và giải phóng dung lượng ổ đĩa bằng python.

Tham gia kênh Telegram của AnonyViet 👉 Link 👈

Giải pháp

Thay vì tìm kiếm khắp ổ đĩa để xoá các File trùng lặp, bạn có thể tự động hóa quy trình này bằng cách sử dụng script, bằng cách viết một chương trình để tìm kiếm đệ quy trong ổ đĩa và loại bỏ tất cả các File trùng lặp được tìm thấy.

Các bài viết liên quan

Cách Active Key Sublime Text 4 - Tải Sublime Text 4 Full Key 4

Cách Active Key Sublime Text 4 – Tải Sublime Text 4 Full Key

23/05/2025 - Updated on 25/07/2025
vibde coding là gì

Vibe Coding là gì?

14/05/2025 - Updated on 25/07/2025
Code pháo hoa trang trí cho Website dịp tết 5

Code pháo hoa trang trí cho Website dịp tết

25/01/2025 - Updated on 25/07/2025
Useful Scripts: Tổng hợp 211 công cụ hữu ích cho trình duyệt web 6

Useful Scripts: Tổng hợp 211 công cụ hữu ích cho trình duyệt web

30/09/2024 - Updated on 24/07/2025

Nguyên lý hoạt động

Nếu chúng ta đọc toàn bộ File và sau đó so sánh nó với các File còn lại bằng đệ quy thì sẽ mất rất nhiều thời gian, vậy chúng ta phải làm thế nào mới được?

Câu trả lời là hashing (băm), với hashing chúng ta có thể tạo ra một chuỗi các chữ cái và số nhất định đóng vai trò là danh tính của một File nhất định và nếu chúng ta tìm thấy bất kỳ File nào khác có cùng danh tính, chúng ta sẽ xóa nó.

Xoá các File trùng lặp bằng Python

Có rất nhiều thuật toán hashing khác nhau như:

  • md5
  • sha1
  • sha224, sha256, sha384 và sha512

Code xoá các File trùng lặp bằng Python

Hashing trong Python khá đơn giản, chúng ta sẽ sử dụng thư viện hashlib được mặc định với thư viện chuẩn của Python.

Dưới đây là một ví dụ về cách chúng ta hashing nội dung bằng cách sử dụng hashlib, chúng ta sẽ băm một chuỗi trong Python bằng cách sử dụng thuật toán băm md5.

Xem thêm:  Hướng dẫn Active Wordfence Security Premium miễn phí

Ví dụ

>>> import hashlib
>>> example_text = "Duplython is amazing".encode('utf-8')
>>> hashlib.md5(example_text).hexdigest()
'73a14f46eadcc04f4e04bec8eb66f2ab'

Giải thích chút, bạn chỉ cần import hashlib và sau đó sử dụng phương thức md5 để tạo hash và cuối cùng sử dụng hexdigest để tạo chuỗi hash.

Ví dụ trên đã cho chúng ta thấy cách băm một chuỗi nhưng khi xem xét mối việc này với dự án sắp thực hiện, thì chúng ta phải quan tâm đến các File hơn là chuỗi đúng không? Một câu hỏi khác đã được đặt ra.

Chúng ta Hash file như thế nào?

Các File hash (băm) tương tự như chuỗi băm nhưng lại có một sự khác biệt nhỏ, trong quá trình băm File, trước tiên chúng ta cần mở File ở dạng nhị phân và sau đó băm giá trị nhị phân của File.

Băm file

Giả sử bạn có tài liệu văn bản đơn giản trên thư mục dự án của mình với tên learn.txt. Đây là cách mà chúng ta sẽ thực hiện.

>>> import hashlib
>>> file = open('learn.txt', 'rb').read()
>>> hashlib.md5(file).hexdigest()
'0534cf6d5816c4f1ace48fff75f616c9'

Hàm này sẽ trả ra các giá trị băm giống nhau nếu các file đó có nội dung giống nhau khi đó dễ dàng tìm và Xoá các File trùng lặp bằng Python. Lưu ý: khác tên nhưng giống nội dung thì vẫn trả ra giá trị băm giống nhau nhé.

Thách thức nảy sinh khi chúng ta cố gắng đọc một File khá lớn sẽ mất một lúc để tải nó. Do đó, thay vì đợi toàn bộ File vào bộ nhớ, chúng ta có thể tiếp tục tính toán hàm băm khi đọc File.

Việc tính toán hàm băm trong khi đọc File yêu cầu chúng ta đọc File theo các khối có kích thước nhất định và liên tục cập nhật các hàm băm khi chúng ta tiếp tục đọc File cho đến khi băm hoàn chỉnh toàn bộ File. Nói đơn giản là chia file làm nhiều phần, sau đó đọc từng phần, từng phần đó sẽ được hash, sau khi hash sẽ được update vào biến khác.

Làm theo cách này có thể giúp chúng ta tiết kiệm rất nhiều thời gian chờ đợi mà chúng ta có thể sử dụng để đợi toàn bộ File sẵn sàng.

Ví dụ

>>> import hashlib
>>> block_size = 1024
>>> hash = hashlib.md5()
>>> with open('learn.txt', 'rb') as file:
...     block = file.read(block_size)
...     while len(block)>0:
...             hash.update(block)
...             block = file.read(block_size)
...     print(hash)
... 
0534cf6d5816c4f1ace48fff75f616c9

Nhưng băm chỉ là một bước chúng ta cần để thực sự loại bỏ các bản sao, do đó chúng ta sẽ sử dụng module OS để xóa các bản sao.

Chúng ta sẽ sử dụng hàm remove() trong module OS để xoá các File trùng lặp.

Xem thêm:  TOP 15 ngôn ngữ lập trình cần thiết để trở thành Hacker

Sử dụng module OS để xoá file learn.txt

Ví dụ:

>>> import os
>>> os.listdir()
['Desktop-File-cleaner', '.git', 'learn.txt', 'app.py', 'README.md']
>>> os.remove('learn.txt')
>>> os.listdir()
['Desktop-File-cleaner', '.git', 'app.py', 'README.md']

Sau khi đã xoá được file với hàm remove(), chúng ta sẽ bắt đầu xây dựng ứng dụng.

Cách tạo ứng dụng xoá các File trùng lặp

Những thư viện cần thiết:

import time
import os
from hashlib import sha256

Mình là một người rất thích lập trình hướng đối tượng nên trong bài viết này, mình sẽ xây dựng tool dưới dạng một class duy nhất, code bên dưới chỉ là khung sườn của chương trình.

import time
import os
from hashlib import sha256

class Duplython:
    def __init__(self):
        self.home_dir = os.getcwd(); self.File_hashes = []
        self.Cleaned_dirs = []; self.Total_bytes_saved = 0
        self.block_size = 65536; self.count_cleaned = 0

    def welcome(self)->None:
        print('******************************************************************')
        print('****************        DUPLYTHON      ****************************')
        print('********************************************************************\n\n')
        print('----------------        WELCOME        ----------------------------')
        time.sleep(3)
        print('\nCleaning .................')
        
    def main(self)->None:
      self.welcome()

if __name__ == '__main__':
    App = Duplython()
    App.main()

Đó chỉ là giao diện của chương trình, khi bạn chạy nó sẽ chỉ in lời chào mừng ra màn hình.

$ python3 app.py
******************************************************************
****************        DUPLYTHON      ****************************
********************************************************************

----------------        WELCOME        ----------------------------
​
Cleaning .................

Bây giờ chúng ta sẽ tạo một hàm đơn giản dùng để băm một File với đường dẫn nhất định bằng cách sử dụng kiến ​​thức băm mà chúng ta đã học ở trên.

import time
import os
from hashlib import sha256

class Duplython:
    def __init__(self):
        self.home_dir = os.getcwd(); self.File_hashes = []
        self.Cleaned_dirs = []; self.Total_bytes_saved = 0
        self.block_size = 65536; self.count_cleaned = 0

    def welcome(self)->None:
        print('******************************************************************')
        print('****************        DUPLYTHON      ****************************')
        print('********************************************************************\n\n')
        print('----------------        WELCOME        ----------------------------')
        time.sleep(3)
        print('\nCleaning .................')
        
   def generate_hash(self, Filename:str)->str:
        Filehash = sha256()
        try:
            with open(Filename, 'rb') as File:
                fileblock = File.read(self.block_size)
                while len(fileblock)>0:
                    Filehash.update(fileblock)
                    fileblock = File.read(self.block_size)
                Filehash = Filehash.hexdigest()
            return Filehash
        except:
            return False
        
    def main(self)->None:
      self.welcome()

if __name__ == '__main__':
    App = Duplython()
    App.main()

Triển khai logic cho chương trình

Sau khi tạo hàm băm File, chúng ta phải triển khai ở nơi sẽ so sánh các chuỗi băm đó và loại bỏ bất kỳ bản sao nào được tìm thấy.

Tôi sẽ tạo một hàm đơn giản được gọi là clean () như hình bên dưới.

import time
import os
from hashlib import sha256
​
class Duplython:
    def __init__(self):
        self.home_dir = os.getcwd(); self.File_hashes = []
        self.Cleaned_dirs = []; self.Total_bytes_saved = 0
        self.block_size = 65536; self.count_cleaned = 0
​
    def welcome(self)->None:
        print('******************************************************************')
        print('****************        DUPLYTHON      ****************************')
        print('********************************************************************\n\n')
        print('----------------        WELCOME        ----------------------------')
        time.sleep(3)
        print('\nCleaning .................')
        
   def generate_hash(self, Filename:str)->str:
        Filehash = sha256()
        try:
            with open(Filename, 'rb') as File:
                fileblock = File.read(self.block_size)
                while len(fileblock)>0:
                    Filehash.update(fileblock)
                    fileblock = File.read(self.block_size)
                Filehash = Filehash.hexdigest()
            return Filehash
        except:
            return False
​
    def clean(self)->None:
        all_dirs = [path[0] for path in os.walk('.')]
        for path in all_dirs:
            os.chdir(path)
            All_Files =[file for file in os.listdir() if os.path.isfile(file)]
            for file in All_Files:
                filehash = self.generate_hash(file)
                if not filehash in self.File_hashes:
                    if filehash:                       
                        self.File_hashes.append(filehash)
                        #print(file)
                else:
                    byte_saved = os.path.getsize(file); self.count_cleaned+=1
                    self.Total_bytes_saved+=byte_saved
                    os.remove(file); filename = file.split('/')[-1]
                    print(filename, '.. cleaned ')
            os.chdir(self.home_dir)
        
    def main(self)->None:
      self.welcome();self.clean()
​
if __name__ == '__main__':
    App = Duplython()
    App.main()

Bây giờ chương trình của chúng ta đã gần hoàn tất, việc cuối cùng là phải hiển thị kết quả của quá trình dọn dẹp cho người dùng xem.

Xem thêm:  [Lập trình Game] Bài 5: Lập trình chuyển động nhân vật

Mình đã tạo ra hàm Cleaning_summary() chỉ để làm việc đó. In kết quả của quá trình dọn dẹp ra màn hình để hoàn thành chương trình.

import time
import os
import shutil
from hashlib import sha256

class Duplython:
    def __init__(self):
        self.home_dir = os.getcwd(); self.File_hashes = []
        self.Cleaned_dirs = []; self.Total_bytes_saved = 0
        self.block_size = 65536; self.count_cleaned = 0

    def welcome(self)->None:
        print('******************************************************************')
        print('****************        DUPLYTHON      ****************************')
        print('********************************************************************\n\n')
        print('----------------        WELCOME        ----------------------------')
        time.sleep(3)
        print('\nCleaning .................')

    def generate_hash(self, Filename:str)->str:
        Filehash = sha256()
        try:
            with open(Filename, 'rb') as File:
                fileblock = File.read(self.block_size)
                while len(fileblock)>0:
                    Filehash.update(fileblock)
                    fileblock = File.read(self.block_size)
                Filehash = Filehash.hexdigest()
            return Filehash
        except:
            return False

    def clean(self)->None:
        all_dirs = [path[0] for path in os.walk('.')]
        for path in all_dirs:
            os.chdir(path)
            All_Files =[file for file in os.listdir() if os.path.isfile(file)]
            for file in All_Files:
                filehash = self.generate_hash(file)
                if not filehash in self.File_hashes:
                    if filehash:                       
                        self.File_hashes.append(filehash)
                        #print(file)
                else:
                    byte_saved = os.path.getsize(file); self.count_cleaned+=1
                    self.Total_bytes_saved+=byte_saved
                    os.remove(file); filename = file.split('/')[-1]
                    print(filename, '.. cleaned ')
            os.chdir(self.home_dir)
    
    def cleaning_summary(self)->None:
        mb_saved = self.Total_bytes_saved/1048576
        mb_saved = round(mb_saved, 2)
        print('\n\n--------------FINISHED CLEANING ------------')
        print('File cleaned  : ', self.count_cleaned)
        print('Total Space saved : ', mb_saved, 'MB')
        print('-----------------------------------------------')
        
    def main(self)->None:
        self.welcome();self.clean();self.cleaning_summary()

if __name__ == '__main__':
    App = Duplython()
    App.main()

Ứng dụng Xoá các File trùng lặp bằng Python của chúng ta đã hoàn tất, bây giờ để chạy ứng dụng, hãy chạy nó trong thư mục cụ thể mà bạn muốn dọn dẹp và nó sẽ đệ quy qua một thư mục nhất định để tìm tất cả các File và xóa File trùng lặp.

Kết quả

$ python3 app.py 
******************************************************************
****************        DUPLYTHON      ****************************
********************************************************************
​
​
----------------        WELCOME        ----------------------------
​
Cleaning .................
0(copy).jpeg .. cleaned 
0 (1)(copy).jpeg .. cleaned 
0 (2)(copy).jpeg .. cleaned 

​
--------------FINISHED CLEANING ------------
File cleaned  :  3
Total Space saved :  0.38 MB
-----------------------------------------------

Câu hỏi thường gặp

Làm thế nào chương trình này tìm và xóa các file trùng lặp?

Chương trình sử dụng thuật toán băm (hashing) để so sánh nội dung của các file. Nó tính toán giá trị băm cho mỗi file. Nếu hai file có cùng giá trị băm, chúng được coi là trùng lặp và một trong hai file sẽ bị xóa.

Chương trình hỗ trợ loại file nào?

Chương trình hỗ trợ hầu hết các loại file. Nó dựa trên việc so sánh nội dung file chứ không phải dựa trên phần mở rộng file.

Tôi có thể tùy chỉnh kích thước khối (block size) khi băm file không?

Hiện tại, kích thước khối được cố định trong mã nguồn. Tuy nhiên, bạn có thể chỉnh sửa mã nguồn để thay đổi kích thước khối này, giúp tối ưu hóa quá trình băm cho các file có kích thước lớn hoặc nhỏ khác nhau.

Tags: codelập trìnhpythonxóa file trùngxóa file trùng lắp
Ellyx13

Ellyx13

DevOps với hơn 7 năm kinh nghiệm trong lĩnh vực hạ tầng, tự động hóa CI/CD và triển khai hệ thống phân tán trên các nền tảng như AWS, Azure và Kubernetes. - AWS Certified DevOps Engineer – Professional - Certified Kubernetes Administrator (CKA) - HashiCorp Certified: Terraform Associate - Docker Certified Associate (DCA) Có người không dám bước vì sợ gãy chân, nhưng sợ gãy chân mà không dám bước đi thì khác nào chân đã gãy.

Related Posts

Opal: Tạo ứng dụng AI không cần viết code 7
Code

Opal: Tạo ứng dụng AI không cần viết code

03/08/2025
xoa spam comment wordpress
Code

Cách xóa nhanh tất cả Bình luận rác trên WordPress

14/07/2025 - Updated on 25/07/2025
Code pháo hoa trang trí cho Website dịp tết 8
Code

Code pháo hoa trang trí cho Website dịp tết

25/01/2025 - Updated on 25/07/2025
Code Hiệu Ứng Pháo Hoa Theo Chuột - Trang Trí Website Tết 9
Code

Code Hiệu Ứng Pháo Hoa Theo Chuột – Trang Trí Website Tết

24/12/2024 - Updated on 24/07/2025
chuyen giao dien website sang trang den
Code

Code chuyển giao diện Website sang nền trắng đen để tưởng nhớ hoặc để Quốc tang

20/07/2024 - Updated on 24/07/2025
Hướng dẫn Active Wordfence Security Premium miễn phí 10
Code

Hướng dẫn Active Wordfence Security Premium miễn phí

07/06/2024 - Updated on 24/07/2025
guest

guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Comments
oldest
newest
Inline Feedbacks
View all comments
Gucci
Gucci
4 years ago

Hay quá bạn ơi nhờ có bạn nhắc mới nhớ lại chứ lâu rồi không dùng. Tks chi tiết ghê gớm kkk

Reply
Tèo
Tèo
4 years ago

Hôm nào anh hay chị gì đó làm bài hướng dẫn tạo tool xóa nhiều file trên termux đi ạ :V

Reply
wpdiscuz   wpDiscuz

Liên hệ Quảng Cáo

Lien he AnonyViet

Bài viết mới

ChatGPT Atlas có gì đặc biệt? Những điều cần biết trước khi cài đặt 12

ChatGPT Atlas có gì đặc biệt? Những điều cần biết trước khi cài đặt

by Thanh Kim
23/10/2025
0

Hướng dẫn cài CapCut Pro cho iPhone miễn phí 13

Hướng dẫn cài CapCut Pro cho iPhone miễn phí

by Thanh Kim
22/10/2025
0

Hướng dẫn cài Scarlet iOS để cài mọi file IPA không bị thu hồi 14

Hướng dẫn cài Scarlet iOS để cài mọi file IPA không bị thu hồi

by Thanh Kim
22/10/2025
0

[CẬP NHẬT] 150+ Tên kí tự đặc biệt HOT TREND mới nhất 2026 15

[CẬP NHẬT] 150+ Tên kí tự đặc biệt HOT TREND mới nhất 2026

by AnonyViet
21/10/2025
0

Giới thiệu

AnonyViet

AnonyViet

Nơi chia sẻ những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến AnonyViet.

Hãy cùng AnonyViet xây dựng một cộng đồng CNTT lớn mạnh nhất!

Giới thiệu

AnonyViet là Website chia sẻ miễn phí tất cả các kiến thức về công nghệ thông tin. AnonyViet cung cấp mọi giải pháp về mạng máy tính, phần mềm, đồ họa và MMO.

Liên hệ

Email: support[@]anonyviet.com

1409 Hill Street #01-01A
Old Hill Street Police Station
Singapore 179369

 

DMCA.com Protection Status

Bình luận gần đây

  • Việt trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • HAI trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • thịnh trong Hướng dẫn nhận key IObit Uninstaller 14 miễn phí 6 tháng
  • veoe trong Bí quyết tạo ảnh cầm bó hoa đẹp như bìa tạp chí với Nano Banana
  • AnonyViet trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • mon trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • Felizz23 trong Namecheap khuyến mãi 3 Domain giá 0$
  • AnonyViet trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • ann trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • Kim trong Namecheap khuyến mãi 3 Domain giá 0$
  • em hậu trong Cách chặn quảng cáo trên iPhone, iPad và Mac (cả web và app)
  • Võ Sĩ Cua trong Share key Driver Booster v13 Pro miễn phí 6 tháng
  • Tuấn Tú trong Share key Driver Booster v13 Pro miễn phí 6 tháng
  • Quốc Vũ trong Share key Driver Booster v13 Pro miễn phí 6 tháng
  • Ski trong Cách chặn quảng cáo trên iPhone, iPad và Mac (cả web và app)
  • linh trong Share key Driver Booster v13 Pro miễn phí 6 tháng
  • Heheehe🐧 trong Top 10 Phần mềm miễn phí cho Windows 11 nên cài
  • Jdi trong Download Hack of Products v5 APK – Hack vật phẩm trên Android
  • Hoàng Na trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram
  • nam trong [Update] Cách nhận Google AI Pro 1 năm miễn phí bằng Telegram

©2025 AnonyViet - Chúng tôi mang đến cho bạ những kiến thức bổ ích về CNTT Công nghệ kết quả xổ số hôm nay xoilac 8x bet https://cwfun.org/ 33win Ae888 kubet kubet 8kbet 99ok xin88 good88 xn88 kubet RR88 cakhiatv f8bet https://qq883a.com/ XX88 mu88 casino https://sunwin10.org/ f168 fm88 xin88 https://918xxy.com/ kubet thailand vip66 xoso66 vip66 xoso66 https://tp88fun.com/ https://daga.rocks hello88 qq88 GK88 PG88 SV388 PG88 Xoso66 Vip66 hitclub bong99 Ga6789 XOSO66 new882.info Hi88 8day Thabet 33win Bk8 fun88 789win w88 nhà cái uy tín Go88 sunwin sunwin jun88 rikvip hitclub sunwin go88 s666 sv388 12bet v9bet betvisa betvisa vin777 vin777 Thabet press ee88 bet88 abc8 c54 i9bet ok365 ae888 https://keonhacai.fund/ sunwin https://ok9393.com/ sv368pro https://xx88.space/ xoilac cakhiatv socolive QQ88 TP88 Xoso66 xoso66 u888 79king pg88 f168 88vv https://mm88.today/ mu88 com 8kbet https://qq88pro.vip/ xoso66 98win fun88.supply king88 33win sv388 v9bet s666 https://max88rl.com/ https://ok365rl.com/ EE88 FB88 TYPHU88 https://xx88.ink/ https://da88.design/ 789f Kkwin 79king xin88 XX88 https://mb66co.com/ https://fun88.supply/ pg88 thapcamtv thapcamtv https://rr88.navy/ https://e2beting.com/ gem88 bk8 bk8 F8BET80 typhu88 k8cc sa88 https://q23win.com/ 32win 32win 78win 68win BET88 luongsontv luongsontv https://vankhanhtv.cc/ 9bet https://nohutm.com SODO fun88 sunwin BL555 u888 https://nohumo.com 8xbet W88 link cola tv colatv trực tiếp bóng dá colatv trực tiếp bóng dá colatv colatv truc tiep bong da colatv colatv bóng dá trực tiếp 58win https://s68win.com/ 58WIN NOHU90 https://hm8805.com/ GK88 https://go991.club/ 188bet ax88 8KBET 69VN 33WIN 32win Kuwin https://bbet88b.com/ Jun88.estate OK9 SHBET https://xx88.center/ vswin HM88 NỔ HỦ ĐỔI THƯỞNG 789PCOM NHÀ CÁI MMOO bắn cá TT88COM GO 99 F168 https://k8cc.wiki/ https://betvisa.wales/ https://12betp1.com/ https://loto188.im/ https://celinediontv.com/ https://sun-n-fun.com/ RR88 RR88 https://qq88.studio/ ee88 https://kjc88.com.de/ tài xỉu online uy tín Game bài đổi thưởng uy tín kèo nhà cái kèo nhà cái 5 789f 188bet w88 Gem88 Thabet jun88 kclub vip79 dv88 Gi8 For88 Rikbet 8kbet 6ff AX88 Kkwin HZ88 tv88 ABC8 https://ww88.me/ https://nowgoal.ws/ https://tylekeonhacai.me/ https://keonhacai.org.vc/ sodo casino https://xx88.ac/ C54 xx88.me.uk gem88 king88 ae888 bj88 good88 32WIN https://xx88.today/ hm88 XX88 GO8 NH88 https://ok99.co.com/ XN88 58WIN NH88 32WIN ST666 28BET xn88 https://pg666.baby/ 789f 789f 88xx 98win mv88 https://469vns.com/ 888NEW TV88 XN88 NN88 MV88 MV66 GO8 XN88 NOHU90 TV88 68WIN 89BET 888NEW GO99 AF88 HM88 HZ88 https://xx88.asia/ TK88 789f u888lm.com NOHU HITCLUB Sunwin 58WIN 9BET DA88 MV88 tv88 888NEW AZ888 89bet https://rr88.pizza/ win55 888NEW GO8 888new 888new https://urr88.com/ 789win PG99 13win Thabet Casino 8kbet WW88 https://qq88.agency/ 88i nn88 99win f8bet https://1mm88.info/ 69vn https://hhpanda.to/ https://u888wl.com/ Nohu90 Go8 mv66 win678 https://kjc.vegas/ https://qq88gg.net/ https://789f.capital/ 58winm.net ww888.gifts mv66 https://ae888hn.com/ https://ok365se.com/ pu88 KKWIN kèo nhà cái https://hubet.horse/ https://88vv5.biz/ 8kbet win678 https://f168.limo/ 58win 789F go99 https://okfun.lat/ https://mm88sa.com/ Rik88 x88 x88 789win HZ88 x88 win678 https://8kbet3.top/ nohu90 SHBET QQ88 COM cakhia ax88 889BET TD88 SODO66 SODO CASINO kjc https://kjcgaming.com KUBET https://xxx8891.com/ 789f 789f 8kbet https://mm88set.com/ https://79king79.biz/ https://go8090.net/ bsport mm88.studio 5MB 5MB keovip.de.com SODO66 x88 123 b 123 b hb 88 hb 88 hb 88 69vn For88 88nn nhatvip ngonclub bossfun sv66 b52 mbet https://uu-88.net/ KUBET11 fb68 88vv 23win PG66 BL555 RS88 RS99 888TO 123B RR99 ok9 OK9 VankhanhTV 12bet v9bet betvisa betvisa vin777 vin777 ee88 bet88 abc8 c54 XX88 888New QQ88 XX88 XX88 https://79kingg.me/ X8 Cổng game bài đổi thưởng uy tín ww88.cfd MM88 BL555 nhà cái HD88 Casino NN88 https://ww88.net.vc/ HD88 cobet X88 X8 COBET zx88 https://mb66.bz/ kingfun thabet QC6672 PR8755 https://lc88.bio/ RG8369 ok9 football 789Win KJC f168 79king https://qq88.gives/ https://23wincasino.com/ https://pg999.baby/ https://ev88.buzz kingfun EE88 daga ax88 SODO66 789f XIN88 zx88 32win Bossfun MM88 NOHU90 SH BET https://gk88t2.com/ 789win EU9 https://28bet.co.uk/ Mv66 AU88 KUBET88 EE88 Thapcam TV Vebo TV pagcor W88 789f 888to PG88 xx88.promo NH88 hm88 88clb bk8 Kubet nhà cái uy tín Sodo66 789F Jun88 8KBET 11uu 58WIN https://f8bet.luxury/ colatv truc tiep bong da gavangtv gavangtv trực tiếp bóng rổ https://mm88.download/ nhà cái 88bet XX Wvip SODO CASINO 888new XN88 f8bet f168 VIP66 188v vn23 11uu F8BET KUWIN ev88

No Result
View All Result
  • ANONYVIET CẦN CÁC BẠN GIÚP SỨC
  • Chính sách
  • Mini Game AnonyViet và FShare Mừng xuân 2021
  • Privacy
  • Quảng cáo
  • Search
  • Search Results
  • Share Acc Nhaccuatui VIP 2020
  • Thành Viên VIP
    • Danh Sách Đặc Quyền Thành Viên VIP
  • Tiếp tục đi đến trang mới là tính năng gì
  • Trang chủ
  • Đang lấy thông tin dữ liệu
  • Đang đến địa chỉ đích

©2025 AnonyViet - Chúng tôi mang đến cho bạ những kiến thức bổ ích về CNTT Công nghệ kết quả xổ số hôm nay xoilac 8x bet https://cwfun.org/ 33win Ae888 kubet kubet 8kbet 99ok xin88 good88 xn88 kubet RR88 cakhiatv f8bet https://qq883a.com/ XX88 mu88 casino https://sunwin10.org/ f168 fm88 xin88 https://918xxy.com/ kubet thailand vip66 xoso66 vip66 xoso66 https://tp88fun.com/ https://daga.rocks hello88 qq88 GK88 PG88 SV388 PG88 Xoso66 Vip66 hitclub bong99 Ga6789 XOSO66 new882.info Hi88 8day Thabet 33win Bk8 fun88 789win w88 nhà cái uy tín Go88 sunwin sunwin jun88 rikvip hitclub sunwin go88 s666 sv388 12bet v9bet betvisa betvisa vin777 vin777 Thabet press ee88 bet88 abc8 c54 i9bet ok365 ae888 https://keonhacai.fund/ sunwin https://ok9393.com/ sv368pro https://xx88.space/ xoilac cakhiatv socolive QQ88 TP88 Xoso66 xoso66 u888 79king pg88 f168 88vv https://mm88.today/ mu88 com 8kbet https://qq88pro.vip/ xoso66 98win fun88.supply king88 33win sv388 v9bet s666 https://max88rl.com/ https://ok365rl.com/ EE88 FB88 TYPHU88 https://xx88.ink/ https://da88.design/ 789f Kkwin 79king xin88 XX88 https://mb66co.com/ https://fun88.supply/ pg88 thapcamtv thapcamtv https://rr88.navy/ https://e2beting.com/ gem88 bk8 bk8 F8BET80 typhu88 k8cc sa88 https://q23win.com/ 32win 32win 78win 68win BET88 luongsontv luongsontv https://vankhanhtv.cc/ 9bet https://nohutm.com SODO fun88 sunwin BL555 u888 https://nohumo.com 8xbet W88 link cola tv colatv trực tiếp bóng dá colatv trực tiếp bóng dá colatv colatv truc tiep bong da colatv colatv bóng dá trực tiếp 58win https://s68win.com/ 58WIN NOHU90 https://hm8805.com/ GK88 https://go991.club/ 188bet ax88 8KBET 69VN 33WIN 32win Kuwin https://bbet88b.com/ Jun88.estate OK9 SHBET https://xx88.center/ vswin HM88 NỔ HỦ ĐỔI THƯỞNG 789PCOM NHÀ CÁI MMOO bắn cá TT88COM GO 99 F168 https://k8cc.wiki/ https://betvisa.wales/ https://12betp1.com/ https://loto188.im/ https://celinediontv.com/ https://sun-n-fun.com/ RR88 RR88 https://qq88.studio/ ee88 https://kjc88.com.de/ tài xỉu online uy tín Game bài đổi thưởng uy tín kèo nhà cái kèo nhà cái 5 789f 188bet w88 Gem88 Thabet jun88 kclub vip79 dv88 Gi8 For88 Rikbet 8kbet 6ff AX88 Kkwin HZ88 tv88 ABC8 https://ww88.me/ https://nowgoal.ws/ https://tylekeonhacai.me/ https://keonhacai.org.vc/ sodo casino https://xx88.ac/ C54 xx88.me.uk gem88 king88 ae888 bj88 good88 32WIN https://xx88.today/ hm88 XX88 GO8 NH88 https://ok99.co.com/ XN88 58WIN NH88 32WIN ST666 28BET xn88 https://pg666.baby/ 789f 789f 88xx 98win mv88 https://469vns.com/ 888NEW TV88 XN88 NN88 MV88 MV66 GO8 XN88 NOHU90 TV88 68WIN 89BET 888NEW GO99 AF88 HM88 HZ88 https://xx88.asia/ TK88 789f u888lm.com NOHU HITCLUB Sunwin 58WIN 9BET DA88 MV88 tv88 888NEW AZ888 89bet https://rr88.pizza/ win55 888NEW GO8 888new 888new https://urr88.com/ 789win PG99 13win Thabet Casino 8kbet WW88 https://qq88.agency/ 88i nn88 99win f8bet https://1mm88.info/ 69vn https://hhpanda.to/ https://u888wl.com/ Nohu90 Go8 mv66 win678 https://kjc.vegas/ https://qq88gg.net/ https://789f.capital/ 58winm.net ww888.gifts mv66 https://ae888hn.com/ https://ok365se.com/ pu88 KKWIN kèo nhà cái https://hubet.horse/ https://88vv5.biz/ 8kbet win678 https://f168.limo/ 58win 789F go99 https://okfun.lat/ https://mm88sa.com/ Rik88 x88 x88 789win HZ88 x88 win678 https://8kbet3.top/ nohu90 SHBET QQ88 COM cakhia ax88 889BET TD88 SODO66 SODO CASINO kjc https://kjcgaming.com KUBET https://xxx8891.com/ 789f 789f 8kbet https://mm88set.com/ https://79king79.biz/ https://go8090.net/ bsport mm88.studio 5MB 5MB keovip.de.com SODO66 x88 123 b 123 b hb 88 hb 88 hb 88 69vn For88 88nn nhatvip ngonclub bossfun sv66 b52 mbet https://uu-88.net/ KUBET11 fb68 88vv 23win PG66 BL555 RS88 RS99 888TO 123B RR99 ok9 OK9 VankhanhTV 12bet v9bet betvisa betvisa vin777 vin777 ee88 bet88 abc8 c54 XX88 888New QQ88 XX88 XX88 https://79kingg.me/ X8 Cổng game bài đổi thưởng uy tín ww88.cfd MM88 BL555 nhà cái HD88 Casino NN88 https://ww88.net.vc/ HD88 cobet X88 X8 COBET zx88 https://mb66.bz/ kingfun thabet QC6672 PR8755 https://lc88.bio/ RG8369 ok9 football 789Win KJC f168 79king https://qq88.gives/ https://23wincasino.com/ https://pg999.baby/ https://ev88.buzz kingfun EE88 daga ax88 SODO66 789f XIN88 zx88 32win Bossfun MM88 NOHU90 SH BET https://gk88t2.com/ 789win EU9 https://28bet.co.uk/ Mv66 AU88 KUBET88 EE88 Thapcam TV Vebo TV pagcor W88 789f 888to PG88 xx88.promo NH88 hm88 88clb bk8 Kubet nhà cái uy tín Sodo66 789F Jun88 8KBET 11uu 58WIN https://f8bet.luxury/ colatv truc tiep bong da gavangtv gavangtv trực tiếp bóng rổ https://mm88.download/ nhà cái 88bet XX Wvip SODO CASINO 888new XN88 f8bet f168 VIP66 188v vn23 11uu F8BET KUWIN ev88

wpDiscuz