Tên thiết bị bộ điều hợp mạng Windows 7 bằng winpcap


2

Tôi đang cố gắng sử dụng winpcap cho một ứng dụng sẽ được sử dụng trên nhiều máy chủ trong một dây chuyền sản xuất. Một điều làm tôi khó chịu cho đến nay là quy ước đặt tên thiết bị Windows 7, đó là một chuỗi hex dài và thay đổi từ máy chủ sang máy chủ (nghĩa là \Device\NPF_{6F2E340D-FD43-4505-81C2-735716D02F15}(Linux làm cho điều này dễ dàng hơn chỉ với quy ước eth0, eth1, ...). sẽ sử dụng 5 bộ điều hợp mạng, tôi muốn tránh phải giữ một tệp cấu hình với tên thiết bị hoặc không thay đổi mã nguồn để thay đổi tên thiết bị. Ngoài ra, cat5 hook sẽ chuyển sang các thiết bị khác trên các mạng riêng biệt và các bài tập cổng phải luôn giữ nguyên trên mỗi bản vẽ.

Vì vậy, câu hỏi của tôi là, có một số cách dễ dàng để quản lý các tên thiết bị này dưới cửa sổ, chẳng hạn như có thể dễ dàng đổi tên chúng bằng cách nào đó trong sổ đăng ký? Khi tôi xem trong sổ đăng ký, chuỗi hex được hiển thị trong nhiều mục và cũng hiển thị trong tên thư mục, vì vậy tôi không chắc liệu điều đó có trở thành rắc rối để thay đổi hay không. Hoặc có lẽ, có cách nào để winpcap lấy tên thân thiện của thiết bị mà người ta có thể đặt qua trang kết nối mạng và nhận kết quả tên thiết bị hex theo cách đó (tương tự như findalldev_ex ()). Bất kỳ đề nghị khác cũng được chào đón.

PS: Tôi biết rằng tôi có thể sử dụng bind () để liên kết với ip và cổng hoặc sử dụng winock, v.v., nhưng ứng dụng và phần cứng giao tiếp với các thiết bị khác rất phức tạp do nhiều bộ điều hợp mạng cần có cùng một địa chỉ IP và xung đột trong windows, do đó tùy chọn winpcap trong chế độ lăng nhăng tạo ra tất cả các thông điệp thô.


Lưu ý rằng đó là GUID, không chỉ đơn giản là một chuỗi và hầu hết các lập trình viên sẽ coi nó là Kiểu dữ liệu trừu tượng cấp cao hơn, nghĩa là họ phân tích nó và hy vọng nó bao gồm các ký tự hex có dấu gạch ngang tại các vị trí cụ thể, v.v. có khả năng bị hỏng nếu bạn thay đổi nó thành một cái gì đó như 'NIC1'. Thứ hai, đây không phải là tên người dùng có thể đọc được. tương tự Windows cho / dev / eth0 là "Local Area Connection X". Linux sử dụng tên không phải người dùng cơ bản của riêng mình, cho biết địa chỉ bus PCI của thiết bị, để ánh xạ thiết bị. Bạn đã bao giờ có eth0 và eth1 chỉ tự trao đổi khi khởi động lại chưa? Tôi có.
Frank Thomas

Hiện tại tôi có thể trích xuất và phân tích GUID từ cuộc gọi pcap_findalldevs_ex và sử dụng nó như một char char * cho tên thiết bị. Đó không phải là vấn đề. Theo như Linux tự thay đổi eth0 và eth1, tôi chưa gặp phải vấn đề này với nhiều máy chủ được triển khai trong lĩnh vực này trong vài năm nay. Cảm ơn đã làm cho tôi nhận thức được vấn đề tiềm năng này. Tuy nhiên, quy ước eth0 đó làm cho việc triển khai dựa trên Linux trở nên dễ dàng, nhưng bây giờ chúng tôi đang chuyển mọi thứ vào môi trường Windows và đó là nơi GUID trở nên khó khăn hơn.
Pita

Câu trả lời:


2

Làm cách nào để có được "Tên kết nối" của kết nối mạng?

Trên Windows getmaccó thể được sử dụng để truy xuất cả "Tên kết nối" (tên thân thiện) và "Tên vận chuyển" (GUID).

getmac /fo csv /v

Ví dụ đầu ra:

"Connection Name","Network Adapter","Physical Address","Transport Name"
"Local Area Connection","Realtek PCIe GBE Family Controller","F0-BF-97-62-95-5D","\Device\Tcpip_{45B9E87F-83FB-4829-A751-6B62656CC1A8}"
"Wireless Network Connection","Atheros AR9285 Wireless Network Adapter","CC-AF-78-B2-4C-09","\Device\Tcpip_{B108BB0B-CCDC-4ACA-9DFE-5A2F17BC138D}"
"Bluetooth Network Connection","Bluetooth Device (Personal Area Network)","CC-AF-78-B2-4C-0A","Media disconnected"

Làm cách nào để đổi tên kết nối?

netsh có thể được sử dụng để đổi tên kết nối mạng.

netsh interface set interface name="Local Area Connection" newname="New Name"

Làm thế nào tôi có thể tự động hóa tất cả những điều này?

Bạn có thể sử dụng các lệnh trên trong một tệp bó khi cài đặt sản phẩm của mình để tự động tạo tệp cấu hình cục bộ tùy chỉnh.


Đọc thêm

  • Một chỉ mục AZ của dòng lệnh Windows CMD - Một tài liệu tham khảo tuyệt vời cho tất cả những thứ liên quan đến dòng cmd của Windows.
  • getmac - Hiển thị địa chỉ Điều khiển truy cập phương tiện (MAC) và danh sách các giao thức mạng được liên kết với từng địa chỉ cho tất cả các thẻ mạng trong mỗi máy tính, cục bộ hoặc trên toàn mạng.
  • Netsh - Cấu hình giao diện mạng, tường lửa Windows, định tuyến và truy cập từ xa.

Tôi sẽ xem xét những điều này. Cảm ơn bạn cho lời khuyên!
Pita
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.