Địa chỉ MAC ổ cắm Python
Ghi chú. Hướng dẫn sau đây hoạt động trên mọi Bản phân phối Linux, nhưng bạn sẽ cần quyền truy cập root để thực thi các lệnh hệ thống cần thiết để thay đổi Địa chỉ MAC thành công Show
Địa chỉ MAC là gì?Để tìm hiểu cách thay đổi Địa chỉ MAC, điều cần thiết là tìm hiểu về Địa chỉ MAC là gì. Tất cả chúng ta đều sử dụng các thiết bị điện tử khác nhau như điện thoại thông minh, máy tính để bàn, máy tính xách tay, máy tính bảng và nhiều thiết bị khác để duyệt internet, để giải trí, trong số các tác vụ khác. Mỗi thiết bị điện tử này đều có Địa chỉ MAC riêng. MAC là viết tắt của Địa chỉ kiểm soát truy cập phương tiện. Mỗi thiết bị cần một Địa chỉ MAC để được xác định duy nhất bởi những người khác trên mạng. Ví dụ: khi bạn xem video trên Youtube, bạn gửi yêu cầu video qua thiết bị của mình và yêu cầu này được truyền qua cổng mặc định của bạn (thường là qua bộ định tuyến cho mạng gia đình riêng). Bộ định tuyến sau đó gửi yêu cầu này đến World Wide Web và nhận được phản hồi. Bây giờ, World Wide Web (công khai) không biết bạn là ai vì thiết bị của bạn có Địa chỉ IP riêng chỉ được bộ định tuyến của bạn nhận ra, do đó, phản hồi mà bộ định tuyến nhận được sau đó sẽ được cung cấp cho bạn vì bộ định tuyến biết bạn. Địa chỉ MAC là địa chỉ phần cứng 48 bit được mã hóa cứng trên Thẻ Giao diện Mạng (NIC) tại thời điểm sản xuất. Địa chỉ MAC còn được gọi là Địa chỉ vật lý của thiết bị. Địa chỉ MAC được sử dụng để truyền các gói trong mạng Ví dụ: 00. 1A. 3F. F1. 4C. C6 là địa chỉ MAC. Ba octet đầu tiên (00. 1A. 3F) của địa chỉ xác định nhà sản xuất và được gọi là OUI (Mã định danh duy nhất của tổ chức). Ba octet cuối cùng là Bộ điều khiển giao diện mạng cụ thể Đọc thêm về NIC tại đây Tại sao chúng ta cần thay đổi Địa chỉ MAC?Có một số lý do khiến bạn muốn thay đổi Địa chỉ MAC của thiết bị. Hãy xem xét từng cái một
Làm cách nào để thay đổi Địa chỉ MAC?Để thay đổi Địa chỉ MAC, chúng ta cần thực hiện một vài lệnh hệ thống. Bước đầu tiên là xác định giao diện có Địa chỉ MAC bạn muốn thay đổi và bạn có thể thực hiện việc này bằng lệnh sau trong Linux dcode@dcode-pop-os:~$ ifconfig Lệnh trên tạo ra đầu ra sau enp0s3: flags=4163 Trước hết, để thay đổi Địa chỉ MAC, chúng ta cần biết tên giao diện và Địa chỉ MAC hiện có. Thông tin này có thể thu được bằng cách thực hiện lệnh ifconfig. Chúng ta có thể lấy tên giao diện và Địa chỉ MAC hiện có từ đầu ra do ifconfig tạo ra. Chẳng hạn, từ đầu ra ở trên, enp0s3 là tên của giao diện và trường ether trên dòng thứ ba có Địa chỉ MAC (08. 00. 27. 35. 21. ff trong trường hợp của chúng tôi) Bây giờ chúng ta đã biết tên giao diện có Địa chỉ MAC mà chúng ta muốn thay đổi, chúng ta có thể chuyển sang lệnh tiếp theo dcode@dcode-pop-os:~$ sudo ifconfig enp0s3 down Lệnh trên khi được thực thi sẽ đưa giao diện xuống. Điều đó có nghĩa là bạn sẽ không thể kết nối với internet nữa. Trước tiên, chúng ta cần gỡ giao diện xuống (vô hiệu hóa nó) nếu chúng ta cần thay đổi Địa chỉ MAC. Sau đó, lệnh tiếp theo được thực thi sẽ thay đổi Địa chỉ MAC dcode@dcode-pop-os:~$ sudo ifconfig enps03 hw ether 00:11:22:33:44:55 Lệnh trên thay đổi Địa chỉ MAC hiện có (08. 00. 27. 35. 21. FF) sang Địa chỉ MAC mới (00. 11. 22. 33. 44. 55) được chỉ định trong chính lệnh. Bây giờ Địa chỉ MAC của giao diện enp0s3 đã được thay đổi nhưng để sử dụng nó, chúng ta cần kích hoạt lại giao diện bằng lệnh sau dcode@dcode-pop-os:~$ sudo ifconfig enp0s3 up Sau khi thực hiện lệnh trên, bạn kích hoạt lại giao diện để có thể truy cập internet. Để kiểm tra xem Địa chỉ MAC có bị thay đổi thành những gì chúng tôi đã chỉ định hay không, hãy thực hiện lệnh ifconfig dcode@dcode-pop-os:~$ ifconfig Từ đầu ra, chúng ta có thể thấy rằng Địa chỉ MAC đã được thay đổi thành 00. 11. 22. 33. 44. 55 từ 08. 00. 27. 35. 21. ff Sử dụng Python để thay đổi địa chỉ MACCho đến bây giờ, chúng tôi đã nhập các lệnh và thực thi chúng theo cách thủ công nhưng chúng tôi có thể tự động hóa toàn bộ quy trình bằng Python để chúng tôi chỉ cần cung cấp tập lệnh với tên giao diện và Địa chỉ MAC mới Mô-đun được sử dụng
Mô-đun quy trình con được sử dụng để thực thi các lệnh hệ thống bằng Python. Nó chứa một số chức năng có thể được sử dụng. Chúng ta sẽ tập trung vào một chức năng cụ thể được sử dụng để thực thi các lệnh hệ thống. Nó được gọi là hàm call() Cách sử dụng subprocess.call([‘ifconfig’]) Hướng dẫn này thực thi lệnh ifconfig bằng Python Mô-đun argparse giúp viết các giao diện dòng lệnh thân thiện với người dùng một cách thuận tiện. Chương trình xác định các đối số mà nó yêu cầu và argparse sẽ tìm ra cách phân tích các đối số này. Nó cũng tạo các thông báo trợ giúp và sử dụng cũng như đưa ra các lỗi khi người dùng nhập bất kỳ đối số không hợp lệ nào Cách sử dụng dcode@dcode-pop-os:~$ python3 programs_name.py -op1 option -op2 option Với sự trợ giúp của argparse, chúng tôi có thể cung cấp cho người dùng khả năng chuyển các giá trị đầu vào bằng các đối số dòng lệnh. Ngay cả khi bạn không hiểu bây giờ, nó sẽ rõ ràng khi chúng ta bắt đầu viết mã 😃 Tiếp theo, mô-đun re cung cấp các hoạt động đối sánh Biểu thức chính quy. Bạn sẽ biết những gì chúng tôi sử dụng mô-đun lại khi chúng tôi tiến lên phía trước Mã hóa tập lệnh PythonĐây là nơi chúng tôi bắt đầu viết mã bằng Python Bước 1. Nhập các mô-đun đã thảo luận ở trên Bước 2. Triển khai chức năng cho phép người dùng truyền đối số dòng lệnh Để thêm tính năng này vào tập lệnh của chúng tôi, chúng tôi sẽ cần sử dụng mô-đun argparse mà chúng tôi đã nhập ở Bước 1 Thêm chức năng đối số dòng lệnhĐoạn mã trên cho phép người dùng cung cấp đầu vào cho giá trị giao diện và Địa chỉ MAC mới như sau ________số 8_______HOẶC dcode@dcode-pop-os:~$ python3 mac_changer.py --interface interface_name --mac new_mac_address interface_name = Tên của giao diện có Địa chỉ MAC bạn muốn thay đổi new_mac_address=Địa chỉ MAC mà bạn muốn thay thế cho địa chỉ cũ Các tùy chọn lưu trữ các giá trị do người dùng cung cấp. Khi bạn in nó ra kết quả như sau enp0s3: flags=4163 0Truy cập riêng lẻ hai đối số được thực hiện như sau enp0s3: flags=4163 1
Điều cuối cùng trong Bước 2 là chúng ta đã tạo một biến command_args và gọi hàm get_args() enp0s3: flags=4163 2Câu lệnh trên sẽ lưu trữ các tùy chọn được trả về bởi get_args() do đó cho phép chúng ta truy cập vào các giá trị đối số bên ngoài phạm vi của hàm Bước 3. Viết hàm thay đổi địa chỉ MAC Bây giờ chúng ta có hai giá trị mà chúng ta cần để thay đổi Địa chỉ MAC (giao diện và Địa chỉ MAC mới), chúng ta sẽ viết một hàm thay đổi Địa chỉ MAC bằng các lệnh hệ thống Viết hàm thay đổi địa chỉ MACHãy nhìn vào hàm mà chúng ta vừa viết, nó nhận 2 đối số (interface và new_mac). Hai giá trị được cung cấp cho hàm change_mac() bởi biến command_args. Nó cũng kiểm tra xem Địa chỉ MAC được cung cấp có hợp lệ hay không. Sau đó, sử dụng mô-đun quy trình con, chúng tôi thực hiện các lệnh hệ thống. Ghi chú. Bạn yêu cầu quyền truy cập root để thực hiện các lệnh này Bây giờ, tại thời điểm này, chúng tôi đã hoàn thành một tập lệnh Python thay đổi Địa chỉ MAC, nhưng chúng tôi vẫn cần đảm bảo rằng Địa chỉ MAC mới đã được áp dụng. Và để làm được điều đó, chúng ta cần viết một hàm khác trả về Địa chỉ MAC hiện tại của giao diện Bước 4. Viết hàm lấy địa chỉ MAC hiện tại Hàm này lấy giao diện làm đầu vào và trả về Địa chỉ MAC hiện tại của giao diện đó. Chúng tôi đang viết chức năng này để kiểm tra xem địa chỉ MAC mới đã được áp dụng hay chưa Viết hàm lấy địa chỉ MACVì vậy, hàm get_current_mac() trích xuất Địa chỉ MAC hiện tại của giao diện được cung cấp. Bây giờ, hãy phá vỡ chức năng này enp0s3: flags=4163 3Câu lệnh trên tương tự như sub. call() trong hàm change_mac() nhưng có một điểm khác biệt. phụ. Các hàm check_output() trả về đầu ra của lệnh trong khi các hàm phụ. call() không trả lại bất cứ thứ gì. Đầu ra trả về được lưu trữ trong đầu ra biến Ngoài ra, đối số universal_newlines = True được sử dụng vì nếu giá trị này được đặt thành Sai thì đầu ra được trả về tính bằng byte
Tuyên bố tiếp theo là, enp0s3: flags=4163 4Đây là nơi mô-đun re đang được sử dụng. lại là viết tắt của Biểu thức chính quy và chúng thường được sử dụng trong các ứng dụng khớp chuỗi. Ở đó. hàm search() chấp nhận biểu thức chính quy và chuỗi trong đó mẫu được cho là khớp. Trong trường hợp của chúng tôi, chuỗi được lưu trữ bên trong biến đầu ra. \w\w. \w\w. \w\w. \w\w. \w\w. Biểu thức \w\w khớp với Địa chỉ MAC trong biến đầu ra có đầu ra của lệnh ifconfig. Xem hình bên dưới để hiểu rõ hơn Trình diễn RegexNhư bạn có thể thấy rằng biểu thức chính quy khớp hoàn hảo với Địa chỉ MAC (Được đánh dấu bằng màu xanh lá cây trong hộp Kết quả khớp). Bảng biểu thức chính quy Hơn nữa, có những cơ hội mà tái. search() có thể tìm thấy nhiều chuỗi khớp với biểu thức chính quy (biểu thức chính quy). Do đó, câu lệnh dưới đây sẽ đảm bảo chỉ trả về phần tử được so khớp đầu tiên. Điều gì xảy ra nếu nó khớp với nhiều hơn một chuỗi và trả về chuỗi không mong muốn? enp0s3: flags=4163 5Điều này tổng hợp hàm get_current_mac() Bây giờ, điều duy nhất còn lại là kiểm tra xem Địa chỉ MAC do người dùng cung cấp đã được áp dụng hay chưa. Đối với điều này, bạn có thể thấy rằng chúng tôi đã gọi hàm get_current_mac() hai lần, một lần trước khi gọi hàm change_mac() và một lần sau khi gọi hàm change_mac(). Điều này đảm bảo rằng chúng tôi nắm bắt cả Địa chỉ MAC (trước và sau khi thay đổi). Sau đó, chúng tôi so sánh chang_mac và command_args. new_mac và nếu cả hai khớp thì Địa chỉ MAC đã được thay đổi thành công Làm cách nào để lấy địa chỉ MAC từ ổ cắm Python?Phương pháp 1. sử dụng mô-đun mac Để lấy địa chỉ vật lý của thiết bị, chúng tôi sử dụng mô-đun getmac của Python . Phương pháp 2. sử dụng uuid. getnode() getnode() có thể được sử dụng để trích xuất địa chỉ MAC của máy tính. Chức năng này được xác định trong mô-đun uuid.
Làm cách nào để xác thực địa chỉ MAC bằng biểu thức chính quy trong Python?Xác thực địa chỉ MAC . Nhập mô-đun cần thiết (i. e. nhập lại) Lấy chuỗi đầu vào của người dùng Tạo một biểu thức chính quy để kiểm tra địa chỉ MAC hợp lệ Khớp chuỗi với biểu thức chính quy Cuối cùng, trả về true nếu chuỗi khớp, ngược lại trả về false Chức năng ổ cắm trong Python là gì?Đầu tiên, ổ cắm được tạo và sau đó được liên kết với một địa chỉ bằng phương thức liên kết . Sau đó, một vòng lặp vô hạn được nhập để phục vụ các yêu cầu của khách hàng. Phương thức recvfrom nhận một tin nhắn từ ổ cắm datagram và trả về không chỉ tin nhắn mà còn cả địa chỉ của nguồn tin nhắn.
Địa chỉ MAC có phải là hex không?Địa chỉ MAC bao gồm 48 bit, thường được biểu thị dưới dạng một chuỗi gồm 12 chữ số thập lục phân (0 đến 9, a đến f hoặc . |