Giống như bất kỳ thiết bị mạng IP nào khác, máy in sẽ có địa chỉ IP (biểu thị thẻ ethernet) và sẽ chạy dịch vụ trên một cổng nhất định (xác định chương trình phản hồi với thông báo máy in). Đây chỉ là công cụ mạng và không có gì để làm với các công cụ cụ thể của máy in.
Vì vậy, cho nó là cổng duy nhất, không có cách nào để tìm địa chỉ IP của nó. Có lẽ các dịch vụ trên tất cả các máy in khác đều lắng nghe cùng một cổng.
Giả sử bạn có nghĩa là bạn có tên máy in, bạn cần truy vấn dịch vụ tên cho tên miền của mình. Dịch vụ này ánh xạ các địa chỉ mạng tới các tên 'biểu tượng'.
Sử dụng winsock2 api, tôi tin rằng đó là gethostbyname
bạn cần. Thao tác này sẽ truy xuất thông tin máy chủ của máy in của bạn bằng tên của máy in.
Điều này có khả thi không? Làm thế nào bạn có thể nhận được nó chỉ với số cổng. – Shoban
Câu hỏi hay - có lẽ rõ ràng hơn với ý nghĩa của tên cổng? – Elemental
@Shoban: Không phải số cổng nhưng tên cổng. @Elemental: tên cổng là thứ bạn cần cung cấp trong khi định cấu hình cổng máy in trong "Máy in và Fax". Bạn có thể lấy tên cổng của tất cả các máy in bằng cách sử dụng :: EnumPrinter win32 API –